占位符未在IE中显示密码字段

时间:2014-03-03 07:22:55

标签: javascript jquery html css

我已经实现了以下脚本来在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>

2 个答案:

答案 0 :(得分:2)

尝试将input[type="password"]添加到您的选择器,因此请更改:

$(':text, textarea')

为:

$(':text, textarea, input[type="password"]')

因为 :text selector 只选择<input type="text">元素

答案 1 :(得分:2)

两个问题:

  1. 您没有选择密码字段。 :text jQuery选择器仅选择input type=text(显式或隐式)。您必须将input[type=passsword]添加到您的选择器中,以包含密码字段。

  2. 但是一旦你解决了这个问题,你就会遇到一个问题,当然,密码字段的值显示为模糊。因此,在其上设置占位符文本将不会显示占位符。您必须以其他方式显示占位符文字,例如您在字段顶部叠加的spandiv