首先,我通过以下方式测试了支持:
function SupportsInputPlaceholder() {
var i = document.createElement("input");
return "placeholder" in i;
}
$(document).ready(function(){
if(!SupportsInputPlaceholder()) {
alert("no support");
}
}
所以警报没有弹出。
但是在使用占位符单击输入字段并按escape时,占位符文本将成为永久文本框文本。这在 Chrome 中不会发生。
为了解决这个问题,我在文档加载时尝试了以下代码:
$(document).ready(function(){
if(!SupportsInputPlaceholder()) {
alert("no support");
}
$("[placeholder]").keyup(function(e) {
var i = $(this);
var placehold;
placehold = i.attr("placeholder"); // this line has problem
if (e.keyCode == 27) {
alert("placeholder is " + placehold);
if (i.val() == i.attr("placeholder")) {
i.val("");
}
}
});
那么在打印 alert("placeholder is " + placehold);
占位值包含 "" 不应该 i.attr("placeholder")
返回占位符文本吗?