在表单字段上运行验证函数后,我试图聚焦表单字段,该函数会触发该字段的“onblur”事件。我想做的是,如果该字段无效,但它似乎没有做到这一点,则将焦点重新集中在该字段上。我在网上寻找答案,但找不到解决方案。
HTML:
<input type="text" id="name" name="name" value="" onblur="validateName();"/>
JavaScript:
function validateName() {
var name = document.getElementById("name");
if (name.value==""||!isNaN(name.value)){
alert("Please enter a valid name. You have left the field blank or entered a number.");
document.getElementById("name").focus();
}
};//END validateName
document.getElementById("name").focus();
未按预期工作。
最佳答案
该代码适用于我,但为了使其更加“干净”,我为您做了一些更改:
HTML:
您可以通过函数调用(this
)“传递”元素,这样,我们就不必再在函数本身中查找它了。
<input type="text" id="name" name="name" value="" onblur="validateName(this)"/>
JavaScript:
被模糊的元素被传递并存储在 element
中,我们直接调用“focus()”函数。
function validateName(element) {
if (element.value==""||!isNaN(element.value)){
alert("Please enter a valid name. You have left the field blank or entered a number.");
element.focus();
}
};//END validateName
关于javascript - 聚焦已运行该函数的表单字段(新手),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29414555/