我试图在一个触发的表单字段上运行验证函数后关注表单字段" 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();
未按预期工作。
答案 0 :(得分:2)
代码对我有用,但为了使它更“干净”,我为你做了一些改动:
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