我正在制作一个简单的注册表单,用于检查电子邮件用户输入是否已存在。这是通过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!");
}
}
});
}
答案 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"/>