如何在 IE8 中支持占位符属性



>我有一个小问题。 IE 8 不支持输入框的占位符属性。

有没有添加对此的支持的好方法?

您可以随时使用其他插件,例如

  • https://github.com/mathiasbynens/jquery-placeholder

  • https://github.com/jamesallardice/Placeholders.js

  • http://jamesallardice.github.io/Placeholders.js

任何这些都将:)

我建议第一个。它对我有用!

最后 2 不需要任何 JQuery !

-> 的可能重复 如何在 IE8 和 9 中支持占位符属性

好吧,这里有一些非常快速、肮脏且未经测试的东西(字面意思是在我的手机上输入的),但这可能是你会走的路线。这个想法是将范围附加到包含文本输入的元素,并通过 CSS 将其绝对放置在文本输入的"上方"。您可以使用占位符和数据占位符将占位符文本放入输入中。您甚至可以只使用占位符。

附言:jQuery不是强制性的。

// include jQuery somewhere 
function getPlaceholder(obj, parent=false) {
    var ph = obj.data('placeholder');
    if ( ph !== undefined && ph !== false) {
        if (!parent) {
            parent = obj.parent();
        }
    if ( !parent.find(".ph").length ) {
        parent.append('<span class="ph">'+ph+'</span>');
    }
    }
}
// on page load
$("input[type=text]").each(function() {
        getPlaceholder($(this));
});
$(document).on('change', 'input[type=text]', function() {
    var curVal = $(this).val();
    var phtext = $(this).parent().find(".ph");
    if (phtext.length) {
        if ( curVal === "" ) {
            phtext.show();
        }
        else {
            phtext.hide();
        }
    }
});

最新更新