[英]Blur function in jQuery called repeatedly multiple times with autocomplete password on in browser
我在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>
以下是我尝试过的情况,问题可以重现。
在以下情况下,该问题无法重现。
禁用浏览器的自动完成功能或添加的自动完成功能=“ 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);
}
});
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.