IE9 HTML5占位符 - 如何实现人本?(IE9 HTML5 placeholder - how

2019-06-26 00:11发布

我试图使用placeholder="xxx"属性在我的web应用程序,我不希望有一个特殊的视觉对IE9。 人们可以扔了一些很好的建议,为实现在IE9这个功能?

我发现这里上一对夫妇的联系,但没有建议的脚本已经足够......而答案是从2011年中期,所以我想也许有更好的解决方案在那里。 或许还有一个被广泛采用的jQuery插件? 我不希望使用任何需要侵入性的代码,如需要一定的CSS类什么的。

谢谢。

编辑 -我也需要这个密码输入字段工作。

// the below snippet should work, but isn't.
$(document).ready(function() {
   initPlaceholders()();
}

function initPlaceholders() {
        $.support.placeholder = false;
var test = document.createElement('input');
if ('placeholder' in test) {
    $.support.placeholder = true;
    return function() { }
} else {
    return function() {
        $(function() {
            var active = document.activeElement;
            $('form').delegate(':text, :password', 'focus', function() {
                var _placeholder = $(this).attr('placeholder'),
                    _val = $(this).val();
                if (_placeholder != '' && _val == _placeholder) {
                    $(this).val('').removeClass('hasPlaceholder');
                }
            }).delegate(':text, :password', 'blur', function() {
                var _placeholder = $(this).attr('placeholder'),
                    _val = $(this).val();
                if (_placeholder != '' && (_val == '' || _val == _placeholder)) {
                    $(this).val(_placeholder).addClass('hasPlaceholder');
                }
            }).submit(function() {
                $(this).find('.hasPlaceholder').each(function() { $(this).val(''); });
            });
            $(':text, :password').blur();
            $(active).focus();
        });
    }
}
}

Answer 1:

我们只是研究了同样的事情。 我们决定重新使用这个主旨 ,由亚伦·麦考尔 ,进行一些小的改动之后。 主要优点是它的简单,易于理解的代码:

  1. 删除内核和setup_placeholders部分。 只是立即调用它在一个匿名函数。

  2. 添加vartest

对于支持的浏览器placeholder ,它只是回落到这一点。 它也处理新的输入内容(请注意使用的delegate )的存在形式。 但不处理新的动态表单元素。 这也许可以修饰这样做jQuery.on

如果你不喜欢这个,你可以使用那些之一在这里 。 然而,他们中的一些过于复杂,或有可疑的设计决定像setTimeout用于检测新的元素。

请注意,它需要使用2双括号的,因为你调用一个匿名函数,然后调用返回的功能(这可以被不同分解出来):

(function () {
  // ...
})()();


Answer 2:

我写了一个jQuery插件而回,增加了占位符支持,不支持它,什么也不做的那些做任何浏览器。

占位符插件



Answer 3:

这里有一个jQuery插件,用密码字段也有效。 它并不像马修建议的代码很小,但它有一些更多的修复。 我已经与H5Validate以及使用这种成功在一起。

http://webcloud.se/code/jQuery-Placeholder/



文章来源: IE9 HTML5 placeholder - how are people achieving this?