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(“占位符”);我刚刚发布了我是如何解决这个问题的,非常感谢你的帮助。