使用getElementByID中的变量来设置focus()

时间:2016-05-09 23:47:38

标签: javascript getelementbyid

我正在尝试做一些似乎应该简单的事情。我正在尝试在getElementByID中使用一个变量,它需要一个带引号的文字值。我想在多个字段上运行相同的验证代码,如果出现错误,请返回带有问题的字段。看看其他问题和答案,似乎我要做的事情不会起作用,所以必须有更好的选择,但我不知道它是什么。

这就是我所拥有的:

<!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>

1 个答案:

答案 0 :(得分:0)

将您的功能更改为:

document.getElementById(FocusMe.id).focus();

因为你需要将ID而不是值传递给getElementById函数

或者只是(评论中指出更容易)

FocusMe.focus();