>我有一个小问题。 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();
}
}
});