[英]Placeholder script for IE9 javascript issue
我有以下脚本,如果用户使用的是浏览器ie9,那么我们可以修复有关ie9不支持占位符的已知问题:
if (isIE9) { // ie9
// this is html5 placeholder fix for inputs, inputs with placeholder-no-fix class will be skipped(e.g: we need this for password fields)
jQuery('input[placeholder]:not(.placeholder-no-fix), textarea[placeholder]:not(.placeholder-no-fix)').each(function() {
var input = jQuery(this);
if (input.val() == '' && input.attr("placeholder") != '') {
input.addClass("placeholder").val(input.attr('placeholder'));
}
input.focus(function() {
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
input.blur(function() {
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.val(input.attr('placeholder'));
}
});
});
}
当我在ie9中加载页面时,我看到了电子邮件框的占位符,但是密码框决定使用该占位符,并使其看起来像有人输入了一个值,如下所示:
我的标记如下:
<div class="form-group">
<input id="EmailAddress" class="form-control" type="text" value="" placeholder="Please enter your email address" name="EmailAddress" data-val-required="Email Address is required" data-val="true" autocomplete="off" maxlength="320">
</div>
<div class="form-group">
<input id="Password" class="form-control" type="Password" value="" placeholder="Password" name="Password" data-val-required="Password is required" data-val="true" autocomplete="off" maxlength="50">
</div>
有人可以提出任何可以帮助我解决问题的建议吗?
我还向密码类添加了占位符-不固定,但是在ie9中查看时,密码字段为空,它不会显示占位符。
您正在将密码字段的值(.val())设置为字符串“ Password”,将其视为密码并隐藏字符。
我想作为一个肮脏的黑客,您可以将输入类型设置为文本,直到他们专注于该字段,然后将其设置为密码,直到再次模糊时该字段为空(如果使用他们的密码,将其设置为文本显然很糟糕在那里!)。
我建议您使用一个额外的职位:绝对职位; div作为IE 9的占位符后备。只需显示/隐藏div onblur。
使用值作为占位符将要求用户在填写字段之前删除所有内容,并且在密码字段中肯定会出现******问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.