我已经实现了以下脚本来在IE中为输入框显示占位符,但它不适用于密码字段,请建议我..
<script>
jQuery(function() {
jQuery.support.placeholder = false;
test = document.createElement('input');
if('placeholder' in test) jQuery.support.placeholder = true;
});
// Placeholder for IE
$(function () {
if(!$.support.placeholder) {
var active = document.activeElement;
$(':text, textarea').focus(function () {
if ($(this).attr('placeholder') != '' && $(this).val() == $(this).attr('placeholder')) {
$(this).val('').removeClass('hasPlaceholder');
}
}).blur(function () {
if ($(this).attr('placeholder') != '' && ($(this).val() == '' || $(this).val() == $(this).attr('placeholder'))) {
$(this).val($(this).attr('placeholder')).addClass('hasPlaceholder');
}
});
$(':text, textarea').blur();
$(active).focus();
$('form').submit(function () {
$(this).find('.hasPlaceholder').each(function() { $(this).val(''); });
});
}
});
</script>
答案 0 :(得分:2)
尝试将input[type="password"]
添加到您的选择器,因此请更改:
$(':text, textarea')
为:
$(':text, textarea, input[type="password"]')
因为 :text selector 只选择<input type="text">
元素
答案 1 :(得分:2)
两个问题:
您没有选择密码字段。 :text
jQuery选择器仅选择input
type=text
(显式或隐式)。您必须将input[type=passsword]
添加到您的选择器中,以包含密码字段。
但是一旦你解决了这个问题,你就会遇到一个问题,当然,密码字段的值显示为模糊。因此,在其上设置占位符文本将不会显示占位符。您必须以其他方式显示占位符文字,例如您在字段顶部叠加的span
或div
。