Javascript焦点事件转到下一个表单字段

时间:2013-09-14 20:52:33

标签: forms focus

我对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()”

1 个答案:

答案 0 :(得分:0)

对此的修复是添加一点延迟..就像这样:

setTimeout(function() {
    document.getElementById('first_name').focus()
}, 10);

以下是您在jsfiddle中使用此修复程序的示例:http://jsfiddle.net/FgHrg/1/

这似乎是一个常见的Firefox问题..我不确切知道为什么但它与Firefox在完全加载DOM之前加载javascript有关。换句话说,getElementById('first_name')返回null。但添加稍有延迟修复了这个问题。