我在登录页面上的输入字段上运行占位符。在android(4.3)上,它会在页面加载时自动填充用户和密码字段。使用Javascript我能够获得自动填充用户输入的长度,但是当我在密码输入上运行相同的函数时,它返回0。
即使我使用Chrome远程调试进行调试,也会显示密码输入字段为""长度= 0但是android chrome在字段中显示密码。
无论如何都有这个。我只需要在输入字段不为空时进行检测,这样我就可以隐藏占位符了。
$(document).ready(function(){
setTimeout(function () {
alert($("#password").val().length);
checkPlaceholder("#password");
}, 1000);
});
function checkPlaceholder(x) {
if($(x).val().length === 0){
$(x).parent().find(".input_placeholder").removeClass("placeholder_hide");
}
else {
$(x).parent().find(".input_placeholder").addClass("placeholder_hide");
}
}
答案 0 :(得分:0)
'change'
事件后,如果您检查它的值,它将被填充。不幸的是,如果我们触发'click'/'touch'/'focus' etc.
事件,Chrome只会以相同的方式工作,只会触发硬件。
所以,我通过在密码字段上添加'change'
事件的事件监听器来解决我的问题。对于你来说,解决方案可以是:
$(document).ready(function() {
// leave this code for other browsers
setTimeout(function () {
alert($("#password").val().length);
checkPlaceholder("#password");
}, 1000);
// android Chrome fix
$('#password').change(checkPlaceholder.bind(null, '#password'));
});
但是,正如我之前所写,在用户点击页面后,该代码将执行 ONLY 。