2

首先,我通过以下方式测试了支持:

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")返回占位符文本吗?

4

2 回答 2

0

您的代码有错误:

if (i.val() == i.attr("placehold"))

那应该是

if (i.val() == i.attr("placeholder"))
// -----------------------------^^
于 2013-06-19T06:06:51.783 回答
0

如果我用“ http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js ” src替换“js/jquery.min.js” src,问题就解决了

所以该项目使用的是自己的占位符功能代码,它有问题,而不是 jquery 占位符。

于 2013-06-19T07:24:57.290 回答