我对Javascript很新,并且有一个基本问题。我有一个带有first_name和last_name输入字段的HTML表单。我在标题中有以下Javascript代码,但在代码运行后,焦点转到下一个字段(last_name)。为什么这样,我该如何纠正呢?
谢谢。
<script>
function validateForm()
{
valid = true;
//validate first name
if (document.contactform.first_name.value == "")
{
//alert user first name is blank
alert("You must enter a first name");
document.getElementById("first_name").focus();
return false;
}
return valid;
}
</script>
,表单域代码为: input type =“text”name =“first_name”id =“first_name”maxlength =“50”size =“30”onBlur =“validateForm()”
答案 0 :(得分:0)
对此的修复是添加一点延迟..就像这样:
setTimeout(function() {
document.getElementById('first_name').focus()
}, 10);
以下是您在jsfiddle中使用此修复程序的示例:http://jsfiddle.net/FgHrg/1/
这似乎是一个常见的Firefox问题..我不确切知道为什么但它与Firefox在完全加载DOM之前加载javascript有关。换句话说,getElementById('first_name')返回null。但添加稍有延迟修复了这个问题。