影响自动填充解决方案的Javascript执行顺序
这个问题是关于我们的网站试图弥补Chrome坚持在不应该的情况下执行自动填充的问题 请注意:这个问题并不是专门关于自动填充问题的,在过去的几年中,这一问题得到了很好的记录。例如,以下是一些涉及该问题的有用页面:影响自动填充解决方案的Javascript执行顺序,javascript,jquery,google-chrome,autofill,Javascript,Jquery,Google Chrome,Autofill,这个问题是关于我们的网站试图弥补Chrome坚持在不应该的情况下执行自动填充的问题 请注意:这个问题并不是专门关于自动填充问题的,在过去的几年中,这一问题得到了很好的记录。例如,以下是一些涉及该问题的有用页面: 多年来,我们使用了几种类似于上述文章(特别是第一篇文章)中记录的解决方案 随着开发人员开发了变通方法,Chrome团队将努力禁用这些变通方法。目前,我不知道还有什么有效的解决方法。Chromium团队显然认为,任何带有密码字段的表单都是登录表单,它不想轻易地允许编辑
-
-
-
<input type="password" autocomplete="new-password" name="password1" id="password1" size="20" maxlength="$MAX_PASSWORD_LEN" onkeydown="clearMessage('pw_message'); displayMessage('pw_strength');" onkeyup="chkPass(this.value);" onblur="ValidFirstField(this, 'Password', $MIN_PASSWORD_LEN, $MAX_PASSWORD_LEN, ValidPasswordSafety, ['$companyname', '$fname', '$lname', '$email1', '$email2'], 'pw_message', ' not allowed; please choose another.', 1, 'password2' );" >
function ValidFirstField(field1, fieldname, minlen, maxlen, cfunc, aProhibited, msg_field, bad_msg, common_msg, mark_field)
{
if (!field1.value.length)
{
return;
}
var login_prompt = document.getElementById('login-prompt');
if (login_prompt)
{
login_prompt.style.display = STYLE_NONE; /* clear in case set via ajax */
}
var msg = document.getElementById(msg_field);
msg.innerHTML = '';
var allowSubmit = true;
if (field1.value.length < minlen || field1.value.length > maxlen)
{
msg.innerHTML = fieldname + ' must be between ' + minlen + ' and ' + maxlen + ' characters: ' + field1.value.length;
allowSubmit = false;
field1.focus(); // TODO temporarily suppress to prevent focus/onblur race in IE
}
...
$('#show-email').click(function()
{
chg_email_clicked = true;
$('#chg-email-clicked').val(1);
// alert('chg=' + chg_email_clicked);
$(this).hide();
// from https://stackoverflow.com/questions/15738259/disabling-chrome-autofill mike nelson
var $chrome_fake = $('.chrome-fake');
$chrome_fake.show();
window.setTimeout(function ()
{
$chrome_fake.hide();
},1);
$('#email1').val('');
// var testemail1 = document.getElementById('email1').value;
// alert(testemail1);
$('.hide-email').show();
});