我在jQuery中有以下模糊功能,它在页面加载时重复调用(在所有浏览器中)。
Chrome:版本63.0.3239.84 Firefox:版本57.0.2
以下是jQuery代码。
$(document).on('blur','#signInFormId input[name=email],#formId input[name=email]',function(e){
var formData = {};
formData.email = email;
$.ajax({
method:'POST',
url: AJAX_URL,
dataType:'json',
data:formData,
success:function(response){
console.log(response);
}
});
});
我在模式中登录和注册表格如下。 登录表格:
<form id="signInFormId" >
<div class="email">
<div class="header">Email Address</div>
<input type="email" name="signIn_email" id="signIn_email" placeholder="Email Address" value="" autofocus />
</div>
<div class="container">
<div class="header">Password</div>
<input type="password" name="signIn_password" autocomplete="new-password" id="signIn_password" placeholder="Password" />
</div>
</form>
注册表格:
<form id="formId" action="javascript:void(0);">
<div class="first-name">
<div class="header">First Name</div>
<input type="text" id="first_name" name="first_name" placeholder="" value=""/>
</div>
<div class="last-name">
<div class="header">Last Name</div>
<input type="text" id="last_name" name="last_name" placeholder="" value=""/>
</div>
<div class="container">
<div class="header">Email Address</div>
<input type="email" id="email_signup" name="email" placeholder="" value=""/>
</div>
<div class="container">
<div class="header">Password</div>
<input type="password" id="password" name="password" placeholder="password" value="" />
</div>
<a onclick="registerFunction()" href="javascript:void(0);"><div class="button">Signup</div></a>
</form>
以下是我尝试过的案例,问题可以重现。
在下面的情况下,该问题不可重现。
已禁用浏览器自动填充或已添加autocomplete =“new-password” (注意:浏览器会忽略autocomplete =“off”或false)。
但我不想为表单设置自动完成功能。
任何人都可以建议我停止使用自动完成功能触发多个模糊事件吗?
您可以添加布尔值以防止多次模糊:
var isBlur= false;
$(document).on('blur','#signInFormId input[name=email],#formId input[name=email]',function(e){
if(!isBlur){
isBlur = true;
var formData = {};
formData.email = email;
$.ajax({
method:'POST',
url: AJAX_URL,
dataType:'json',
data:formData,
success:function(response){
console.log(response);
}
});
}
});