Der folgende Beitrag wurde am 29. 11. 2002, 11:56 Uhr von Stefan veröffentlicht.
Moin, moin,
für eine Formularüberprüfung bastel ich mir gerade eine Funktion. Da ich verschiedene gleichartige input-Felder habe, will ich natürlich eine Funktion für alle Felder schreiben. Also übergebe ich den Feldnamen beim Funktionsaufruf onChange="Check(this.value,'name_des_feldes')"
Die Funktion checkt dann, ob alles richtig ist und wenn nicht, wird der Feldinhalt gelöscht - kein Problem. (document.getElementsByName(name_des_feldes)[0].value="";)
Um es den User leichter mit der Neueingabe zu machen, will ich dann den focus auf das entsprechende Feld setzen. Genau das bekomme ich aber nicht hin. Probiert habe ich:
document.getElementsByName(name_des_feldes)[0].focus();
und
document.Name_des_Formulars.elements[''+name_des_feldes].focus();
und einige Spielarten davon :)
Hat jemand einen Tipp wie es funktioniert oder warum es nicht geht?
Herzlichen Dank schon mal im Voraus :)
Viele Grüße
Stefan
Der folgende Beitrag wurde am 29. 11. 2002, 12:14 Uhr von Thomas Meinike veröffentlicht.
Hallo,
> Die Funktion checkt dann, ob alles richtig ist und wenn nicht, wird der Feldinhalt gelöscht - kein Problem. (document.getElementsByName(name_des_feldes)[0].value="";)
> Um es den User leichter mit der Neueingabe zu machen, will ich dann den focus auf das entsprechende Feld setzen. Genau das bekomme ich aber nicht hin. Probiert habe ich:
> document.getElementsByName(name_des_feldes)[0].focus();
> und
> document.Name_des_Formulars.elements[''+name_des_feldes].focus();
> und einige Spielarten davon :)
Ich sehe da kein Problem:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 11/02</title>
</head>
<body>
<form action="">
<input type="text" name="abc"><br>
<input type="text" name="abc"><br>
<input type="text" name="abc"><br>
<input type="text" name="abc"><br>
<input type="text" name="abc"><br>
<input type="button" value="Test 1" onclick="document.getElementsByName('abc')[2].focus()">
<input type="button" value="Test 2" onclick="document.forms[0].elements['abc'][3].focus()">
</form>
</body>
</html>
Allerdings ist zu beachten, dass die Collection der Elemente mit gleichem Namen nur erzeugt wird, wenn es mehr als 1 gleichartig benanntes Element gibt.
MfG, Thomas
Der folgende Beitrag wurde am 29. 11. 2002, 12:18 Uhr von Thomas Meinike veröffentlicht.
[Nachtrag:]
> Allerdings ist zu beachten, dass die Collection der Elemente mit gleichem Namen nur erzeugt wird, wenn es mehr als 1 gleichartig benanntes Element gibt.
Gemeint waren die forms-elements-Collections. Fuer document.getElementsByName() gilt das nicht.
MfG, Thomas
Der folgende Beitrag wurde am 29. 11. 2002, 12:30 Uhr von Stefan veröffentlicht.
Moin,
ich glaube, wir reden aneinandervorbei :)
Dein Beispiel ist tatsächlich kein Problem :)
Gemeint ist allerdings:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 11/02 - Vers.1.1</title>
<script>
function check(value,field)
{
if (value = Blödsinn)
{
document.getElementsByName(field)[0].value="";
document.getElementsByName(field)[0].focus();
}
}
</script>
</head>
<body>
<form action="">
<input type="text" name="abc" onchange="check(this.value,'abc')"><br>
<input type="text" name="def" onchange="check(this.value,'def')"><br>
<input type="text" name="ghi" onchange="check(this.value,'ghi')"><br>
<input type=submit>
</form>
</body>
</html>
Verständlicher? Jedenfalls funzt das Value-setzen, aber das focus() eben nicht!
Grüße und Danke
Stefan
Der folgende Beitrag wurde am 29. 11. 2002, 12:40 Uhr von Struppi veröffentlicht.
> Moin,
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <title>Test by TM 11/02 - Vers.1.1</title>
> <script>
function check(field)
{
if (field.value == Blödsinn)
{
field.value="";
field.focus();
}
}
</script>
</head>
<body>
<form action="">
<input type="text" name="abc" onchange="check(this)"><br>
<input type="text" name="def" onchange="check(this)"><br>
<input type="text" name="ghi" onchange="check(this)"><br>
<input type=submit>
</form>
</body>
</html>
und das funktioniert sogar in 3'er Browsern.
Struppi.
Der folgende Beitrag wurde am 29. 11. 2002, 12:47 Uhr von Stefan veröffentlicht.
> und das funktioniert sogar in 3'er Browsern.
Danke, aber bei mir funktioniert das auch im 5er Browser nicht ;)
Habe ich vielleicht irgendwo einen Denkfehler?
Grüße
Stefan
Der folgende Beitrag wurde am 29. 11. 2002, 12:55 Uhr von Struppi veröffentlicht.
> > und das funktioniert sogar in 3'er Browsern.
>
> Danke, aber bei mir funktioniert das auch im 5er Browser nicht ;)
>
> Habe ich vielleicht irgendwo einen Denkfehler?
Der Code war kein orginal Code sondern nur sinnbildlich.
OK nochmal:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Test by TM 11/02 - Vers.1.1</title>
<script>
function check(field)
{
if (!field.value)
{
field.value = "";
field..focus();
}
}
</script>
</head>
<body>
<form action="">
<input type="text" name="abc" onchange="check(this)"><br>
<input type="text" name="def" onchange="check(this)"><br>
<input type="text" name="ghi" onchange="check(this)"><br>
<input type=submit>
</form>
</body>
</html>
Der folgende Beitrag wurde am 29. 11. 2002, 12:56 Uhr von Struppi veröffentlicht.
> > > und das funktioniert sogar in 3'er Browsern.
> >
> > Danke, aber bei mir funktioniert das auch im 5er Browser nicht ;)
> >
> > Habe ich vielleicht irgendwo einen Denkfehler?
>
> Der Code war kein orginal Code sondern nur sinnbildlich.
>
> OK nochmal:
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <title>Test by TM 11/02 - Vers.1.1</title>
> <script>
> function check(field)
> {
> if (!field.value)
Das ist natürlich blödsinn:
Muss heissen z.b.: if (field.value == 'ungültig')
Der folgende Beitrag wurde am 29. 11. 2002, 13:40 Uhr von Stefan veröffentlicht.
> Der Code war kein orginal Code sondern nur sinnbildlich.
Ja, schon klar!
Ich habe jetzt auch nochmal ein Minibeispiel ausprobiert - es funktioniert nicht: der focus() wird nicht auf das entsprechende Feld gesetzt. Mist!
Trotzdem danke, denn ich habe trotzdem was von Dir gelernt :)
Grüße
Stefan
Der folgende Beitrag wurde am 29. 11. 2002, 13:54 Uhr von Struppi veröffentlicht.
> > Der Code war kein orginal Code sondern nur sinnbildlich.
>
> Ja, schon klar!
> Ich habe jetzt auch nochmal ein Minibeispiel ausprobiert - es funktioniert nicht: der focus() wird nicht auf das entsprechende Feld gesetzt. Mist!
Also bei mir funktioniert es tadellos.
Der folgende Beitrag wurde am 29. 11. 2002, 14:14 Uhr von Thomas Meinike veröffentlicht.
Hallo,
> Ich habe jetzt auch nochmal ein Minibeispiel ausprobiert - es funktioniert nicht: der focus() wird nicht auf das entsprechende Feld gesetzt. Mist!
Versuche mal onblur="..." statt onchange="...".
MfG, Thomas
Der folgende Beitrag wurde am 29. 11. 2002, 16:19 Uhr von Stefan veröffentlicht.
> Hallo,
>
> > Ich habe jetzt auch nochmal ein Minibeispiel ausprobiert - es funktioniert nicht: der focus() wird nicht auf das entsprechende Feld gesetzt. Mist!
>
> Versuche mal onblur="..." statt onchange="...".
Dankeschön! So funktioniert's!
:)
Stefan
Der folgende Beitrag wurde am 29. 11. 2002, 13:57 Uhr von Struppi veröffentlicht.
> > > und das funktioniert sogar in 3'er Browsern.
> >
> > Danke, aber bei mir funktioniert das auch im 5er Browser nicht ;)
> >
> > Habe ich vielleicht irgendwo einen Denkfehler?
>
> Der Code war kein orginal Code sondern nur sinnbildlich.
>
> OK nochmal:
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <title>Test by TM 11/02 - Vers.1.1</title>
> <script>
> function check(field)
> {
> if (!field.value)
> {
> field.value = "";
> field..focus();
Ach ich vergaß.
Mit welchen Browsere testest du denn?
Siehst du nicht die Fehlermeldung?
richtig: field.focus();
Struppi.
Der folgende Beitrag wurde am 29. 11. 2002, 12:22 Uhr von Struppi veröffentlicht.
> Moin, moin,
>
> für eine Formularüberprüfung bastel ich mir gerade eine Funktion. Da ich verschiedene gleichartige input-Felder habe, will ich natürlich eine Funktion für alle Felder schreiben. Also übergebe ich den Feldnamen beim Funktionsaufruf onChange="Check(this.value,'name_des_feldes')"
> Die Funktion checkt dann, ob alles richtig ist und wenn nicht, wird der Feldinhalt gelöscht - kein Problem. (document.getElementsByName(name_des_feldes)[0].value="";)
Wenn du schon this verwendest, warum dann nicht konsequent?
onChange="check(this);"
functiuon check(e)
{
el.value = "";
el.focus();
}
Struppi.
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4