Ich versuche, etwas zu tun, das wie es scheint tot einfach sein sollte. Ich versuche eine Variable in getElementByID zu verwenden, die einen literalen Wert in Anführungszeichen erwartet. Es gibt mehrere Felder, in denen ich den gleichen Validierungscode ausführen möchte. Wenn ein Fehler vorliegt, kehren Sie zu dem Feld mit dem Problem zurück. Wenn ich mir andere Fragen und Antworten anschaue, scheint es, dass das, was ich versuche, nicht funktionieren wird, also muss es eine bessere Option geben, aber ich weiß nicht, was es ist.Verwenden einer Variable in getElementByID zum Festlegen von Fokus()
Hier ist, was ich habe:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>I just want to focus!</title>
<script>
// this section of code would validate 3 similar fields
function FocusFoo(FocusMe) {
// validation routine here
// on failure, I want to select the field that called the function
document.getElementById(FocusMe.value).focus();
// fails because getElementById expects a quoted literal.
return false;
}
</script>
</head>
<body>
<form id="FooForm" name="FooForm" action="foo.php" method="post">
<p>Leave Foo 1 to test focus.</p>
<p>Foo 1: <input type="text" id="Foo1" name="Foo1" onBlur="FocusFoo(this)"></p>
<p>Foo 2: <input type="text" id="Foo2" name="Foo2" onBlur="FocusFoo(this)"></p>
<p>Foo 3: <input type="text" id="Foo3" name="Foo3" onBlur="FocusFoo(this)"></p>
</form>
</body>
</html>
Es gibt nicht wirklich eine Notwendigkeit, * das * Element zu erhalten; Sie haben es bereits in 'FocusMe' -' FocusMe.focus(); '. Außerdem erwartet 'getElementById() 'kein Literal. Es erwartet einen String-Wert, der mit einem Literal erstellt werden kann. –