Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mozilla firefox中,占位符工作正常,但按esc键时出现问题_Javascript_Html_Javascript Events_Placeholder - Fatal编程技术网

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

Javascript 在mozilla firefox中,占位符工作正常,但按esc键时出现问题,javascript,html,javascript-events,placeholder,Javascript,Html,Javascript Events,Placeholder,首先,我测试了 function SupportsInputPlaceholder() { var i = document.createElement("input"); return "placeholder" in i; } $(document).ready(function(){ if(!SupportsInputPlaceholder()) { alert("no support"); } } 因此,警报没有弹出 但

首先,我测试了

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("");                
              }
          }
    });
所以在打印警报时(“占位符为”+placehold);placehold值包含“”
i.attr(“占位符”)是否应返回占位符文本?

您的代码有错误:

if (i.val() == i.attr("placehold"))
那应该是

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

如果将我使用的“js/jquery.min.js”src替换为“src”,问题就解决了


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

“但在点击带有占位符的输入字段并按escape时,占位符文本将成为永久文本框文本。“不适合我:(来源:)Ubuntu上的Firefox 20”不应该是i.attr(“占位符”)返回占位符文本?“(源:)您正在使用的代码是什么?@Anubha:这些是指向JSBin的链接。如果将鼠标移到页面上,您将在右上角看到“编辑”。但是你的代码也可以工作:(来源:)它在chrome中工作,但在mozillaCrowder中不工作我做了更改,谢谢,但警告框仍然打印“占位符是”,我在上一篇文章中解释了我的想法comment@Anubha:“但警报框仍在打印‘占位符是’”,当然是,我们没有更改代码,但我运行了刚才在问题中编辑的代码。行:警报(“占位符有”+i.attr(“占位符”);我刚刚发布了我是如何解决这个问题的,非常感谢你的帮助。