HighDots Forums  

Button soll nach OnClick Value ändern

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Button soll nach OnClick Value ändern in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
HeidiWeber
 
Posts: n/a

Default Button soll nach OnClick Value ändern - 10-10-2007 , 10:41 AM






Hallo

ein Button soll, nachdem er gedrückt wurde, seine Beschriftung (Value)
ändern und er soll nicht mehr anklickbar sein.

Ich habe das so probiert:

<script type="text/javascript">
// Nur einmal senden
function einmal_senden() {
document.Formular.elements["absenden"].value="Formular gesendet";
document.Formular.elements["absenden"].disabled="disabled";
return true;
}
</script>

<form name="Formular" action="" method="post" onClick="return
einmal_senden();">
<input type="submit" name="absenden">
</form>


Im InternetExplorer 6 funktioniert das. Im Firefox 2 leider nicht.Kann
mir vielleicht bitte jemand einen Tipp geben, wie das in "allen"
Browsern funktioniert?

Vielen Dank
Heidi


Reply With Quote
  #2  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Button soll nach OnClick Value ändern - 10-10-2007 , 10:54 AM






HeidiWeber wrote:
Quote:
ein Button soll, nachdem er gedrückt wurde, seine Beschriftung (Value)
ändern und er soll nicht mehr anklickbar sein.
Tu das bitte nicht. Stell Dir vor, der Benutzer navigiert zurück: dann
findet er einen unsinnigen Button vor, und er kann seine Eingaben zwar
korrigieren, aber die Korrektur nicht absenden.

Quote:
Im InternetExplorer 6 funktioniert das. Im Firefox 2 leider nicht.Kann
mir vielleicht bitte jemand einen Tipp geben, wie das in "allen"
Browsern funktioniert?
http://glasgoogle.de/

Du suchst jedoch statt Deines Ansatzes einen mit serverseitigen Sessions.


PointedEars
--
var bugRiddenCrashPronePieceOfJunk = (
navigator.userAgent.indexOf('MSIE 5') != -1
&& navigator.userAgent.indexOf('Mac') != -1
) // Plone, register_function.js:16


Reply With Quote
  #3  
Old   
Gerome Muent
 
Posts: n/a

Default Re: Button soll nach OnClick Value ändern - 10-11-2007 , 09:27 AM



* HeidiWeber wrote:

Quote:
ein Button soll, nachdem er gedrückt wurde, seine Beschriftung (Value)
ändern und er soll nicht mehr anklickbar sein.

Ich habe das so probiert:

script type="text/javascript"
// Nur einmal senden
function einmal_senden() {
document.Formular.elements["absenden"].value="Formular gesendet";
document.Formular.elements["absenden"].disabled="disabled";
return true;
}
/script

form name="Formular" action="" method="post" onClick="return
einmal_senden();"
input type="submit" name="absenden"
/form


Im InternetExplorer 6 funktioniert das. Im Firefox 2 leider nicht.Kann
mir vielleicht bitte jemand einen Tipp geben, wie das in "allen"
Browsern funktioniert?
Gib deinem Button eine ID und greife mit document.getElementById drauf zu:

<input type="submit" id="absenden" name="absenden">

function einmal_senden() {
document.getElementById('absenden').value="Formula r gesendet";
document.getElementById('absenden').disabled=true;
return true;
}

Ob das sinnvoll ist? Siehe das andere Posting.

Gruß, Gérôme


--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt (AT) bmservices (DOT) de


Reply With Quote
  #4  
Old   
Thomas 'PointedEars' Lahn
 
Posts: n/a

Default Re: Button soll nach OnClick Value ändern - 10-11-2007 , 09:54 AM



Gerome Muent wrote:
Quote:
* HeidiWeber wrote:
script type="text/javascript"
// Nur einmal senden
function einmal_senden() {
document.Formular.elements["absenden"].value="Formular gesendet";
document.Formular.elements["absenden"].disabled="disabled";
return true;
}
/script

form name="Formular" action="" method="post" onClick="return
einmal_senden();"
input type="submit" name="absenden"
/form

Im InternetExplorer 6 funktioniert das. Im Firefox 2 leider nicht.Kann
mir vielleicht bitte jemand einen Tipp geben, wie das in "allen"
Browsern funktioniert?

Gib deinem Button eine ID und greife mit document.getElementById drauf zu:

input type="submit" id="absenden" name="absenden"
Keine gute Idee, ID und Name gleich zu wählen.

Quote:
function einmal_senden() {
document.getElementById('absenden').value="Formula r gesendet";
document.getElementById('absenden').disabled=true;
Das ist im Vergleich zur durchgängigen Referenzierung mit standardkonformen
Collections unperformant, wartungsunfreundlich und nutzt wahrscheinlich
überhaupt nichts (ganz abgesehen von der Unsinnigkeit).

Das Problem bei der Funktionalität ist hier _nicht_ die Referenzierung,
sondern eher eine Race Condition aufgrund des falschen Event-Handlings; die
proprietäre Variante der Formularreferenzierung -- document.Formular -- wird
von FF 2 unterstützt.


PointedEars
--
Mozilla ist ein Webbrowser. Das ist ein Programm, dass es ermoeglicht,
Webseiten anzusehen. Das ist nicht sowas wie ein Programm, das es
Webdesignern erlaubt, den Nutzer zu belaestigen, indem man seine
Arbeitsumgebung unsinnig manipuliert. (Boris 'pi' Piwinger in dcljs)


Reply With Quote
  #5  
Old   
Gerome Muent
 
Posts: n/a

Default Re: Button soll nach OnClick Value ändern - 10-11-2007 , 10:15 AM



* Thomas 'PointedEars' Lahn wrote:

Quote:
input type="submit" id="absenden" name="absenden"

Keine gute Idee, ID und Name gleich zu wählen.
Warum sollte das keine gute Idee sein? Funktioniert bei mir immer.
Es ist erheblich wartungsunfreundlicher, wenn beides unterschiedlich ist.
Auf die id greife ich per JavaScript zu, der name ist relevant für das,
was serverseitig für die Auswertung ankommt, zB bei PHP oder Perl.

G.

--
BM Computer-Services, Bergmannstr. 66, 10961 Berlin
Webdesign, Internet, Layout und Grafik
Tel.: 030/20649400, mobil 0175/7419517, Fax: 030/20649401
Web: http://www.bmservices.de, eMail: kontakt (AT) bmservices (DOT) de


Reply With Quote
  #6  
Old   
Ralf Beutler
 
Posts: n/a

Default Re: Button soll nach OnClick Value ändern - 10-11-2007 , 05:14 PM



Gerome Muent schrieb:
Quote:
input type="submit" id="absenden" name="absenden"

Auf die id greife ich per JavaScript zu, der name ist relevant für das,
was serverseitig für die Auswertung ankommt, zB bei PHP oder Perl.
Innerhalb von Formularen ist es vollkommen unnötig und umständlich, id
zu verwenden.

<form onsubmit="handleFormEvent(this)" ..>

<input onclick="handleControlEvent(this)" ..>

<select onchange="handleControlEvent(this)" ..>

und

function handleFormEvent(oForm){
oForm["controlName"].value; // liefert den Wert eines Controls
}

function handleControlEvent(o){
o.value; // liefert den Wert des Controls
o.form["controlName"].value // liefert den Wert eines anderen Controls
}

halte ich für wesentlich einfacher und objektorientierter.
Damit kannst du Funktionen implementieren, die z.B. den Namen eines
Controls gar nicht wissen müssen. Ganz im Gegensatz zu
document.getElementById().

br ? rb
--
Sie freuten sich riesig, wenn eine Maschine nach sechs Stunden etwas
fertig brachte, wozu jeder Mensch auf der Straße für 2 Cent fähig
gewesen wäre. Anschließend ließen sie sich Bananen- und Sushi-Pizza
kommen und schliefen vor der Tastatur ein. [aus T.P., Heiße Hüpfer]


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.