Forum Doku Wiki Blog

Forumsarchiv 2002, November
getElementByName.focus()

archivierte Beiträge lesen

  1. (JAVASCRIPT) getElementByName.focus() von Stefan, 29. 11. 2002, 11:56

getElementByName.focus()

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

getElementByName.focus()

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

getElementByName.focus()

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

getElementByName.focus()

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

getElementByName.focus()

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.

getElementByName.focus()

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

getElementByName.focus()

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>

getElementByName.focus()

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')

getElementByName.focus()

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

getElementByName.focus()

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.

getElementByName.focus()

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

getElementByName.focus()

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

getElementByName.focus()

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.

getElementByName.focus()

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