在mozilla firefox中,占位符正在工作但按下esc键时出现问题

时间:2013-06-19 05:57:37

标签: javascript html html5 javascript-events placeholder

首先,我通过

测试了支持
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("");                
              }
          }
    });

所以在打印警报(“占位符是”+占位符);占位值包含“” i.attr(“占位符”)不应该返回占位符文本吗?

2 个答案:

答案 0 :(得分:0)

您的代码有错误:

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

那应该是

if (i.val() == i.attr("placeholder"))
// -----------------------------^^

答案 1 :(得分:0)

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

因此,该项目使用自己的占位符功能代码,该代码存在问题,而不是jquery占位符。