我正在使用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>
我做错了什么?
答案 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();