为什么输入字段在ajax或javascript函数调用后被禁用?

时间:2013-12-02 11:57:23

标签: javascript php jquery ajax

我正在制作一个简单的注册表单,用于检查电子邮件用户输入是否已存在。这是通过onChange函数完成的,而onChange函数又通过ajax检查用户输入的电子邮件是否可用。目前,如果电子邮件已经注册,我只会显示一个警告框。但我注意到一种奇怪的行为。单击警告框中的“确定”按钮后,将禁用整个表单以进行文本输入。我无法将文本输入到剩余的字段中,刷新页面是使表单再次激活输入的唯一解决方案。 为什么会这样?我该如何预防?

这是我的代码:

我的一个输入字段

<input type="email" name="email" onChange="checkEmail()" id="email"/>

以下是用于检查电子邮件的javascript和ajax代码(如果存在或不存在):

       function checkEmail()
         {

            var email=$('#email').val();


            var dataString = 'email=' + email;              
            $.ajax({
                type: "POST",
                url: "<?=base_url();?>home/check_email",            
                data: dataString,                           
                dataType:"html",
                success: function(msg)
                    {
                        if(msg=="1")
                        {
                            alert("The email already exists in our records!");
                        }

                    }
            });
        }

3 个答案:

答案 0 :(得分:2)

你必须使用onBlur

<input type="email" name="email" onBlur="checkEmail()" id="email"/>

答案 1 :(得分:2)

您应该使用onBlur,当您离开文本框时会触发此事件。否则,每次文本框中的字符发生变化时都会调用它。

<input type="email" name="email" onBlur="checkEmail()" id="email"/>

答案 2 :(得分:0)

或者如果您确实想要检查每个击键(无论出于何种原因),请使用按键事件

 <input type="email" name="email" onKeyPress="checkEmail()" id="email"/>