Focus()无法在JavaScript表单验证中使用

时间:2018-04-23 17:07:17

标签: javascript jquery html css forms

我正在使用JavaScript进行简单的表单验证,并且在尝试将焦点()放在已经错误填写的字段上时遇到问题

//检查空名称

if (document.forms[0].UserInfo.value == ""){
    document.getElementById("UserInfo").focus();
    errorMessage += "Name cannot be empty \n";
}

我也试过以不同的方式做到这一点没有运气

document.getElementsByName("UserInfo")[0].focus();
document.forms[0].UserInfo.focus();

基本上,当弹出警报时,我希望突出显示相应的字段

这是HTML的一部分:

<fieldset>
    <legend>About You</legend>
    <p id="UserInfo">What is your name?</p>
    <div>
        <input type="text" name="UserInfo" size="40">
    </div>
</fieldset>

我做错了什么?

3 个答案:

答案 0 :(得分:0)

您的UserInfo ID位于P标记上 - 而不是输入。

因此,当您尝试定位ID时,它会选择

@id

将您的ID切换到输入,它将起作用。

答案 1 :(得分:0)

你的p元素上有id属性而不是你的输入元素。如果你需要p元素上的那个id用于样式或你有什么,在输入元素上使用不同的id,那么该id上的document.getElementById()应该可以工作。

答案 2 :(得分:0)

id="UserInfo"移动到输入是最有意义的,但如果您无法更改HTML,请尝试:

document.querySelector("input[name='UserInfo']").focus();