我正在使用Daniel Stocks的jQuery占位符插件。
这是插件: https://github.com/danielstocks/jQuery-Placeholder/blob/master/jquery.placeholder.js
除了以下小问题外,它对所有字段都有效: 在Chrome中,当焦点位于字段上时,占位符会保留,直到您键入内容为止。但在IE和FF中,占位符文本在焦点后被删除。 我希望他们都喜欢在Chrome中表现。
事情是在chrome中,占位符是本机支持的,所以即使没有插件,它也会按照我喜欢的方式工作。在FF中它没有插件也有效,除了前面提到的问题。在IE浏览器中,没有插件就可以正常工作,正如您可能已经猜到的那样。
答案 0 :(得分:4)
我是该插件的作者。如果您确实要禁用Chrome的原生支持,可以在代码中编辑第71行:
var NATIVE_SUPPORT = !!("placeholder" in document.createElement( "input" ));
为:
var NATIVE_SUPPORT = false
通过这样做,您只需使所有浏览器都使用该插件,即使是那些具有本机支持的插件。
我想指出,这不仅仅是“Chrome”定义的行为。 Safari(以及iOS上的移动游戏)就是这样的。这些用户很可能“习惯”这种行为,所以也许可以问一下这个问题,你究竟想要实现什么目标?
答案 1 :(得分:1)
从第77行替换源代码中的以下部分:
input.focus(function() {
placeholder.hide();
});
用这个:
input.keyup(function() {
if (input.val() != "") {
placeholder.hide();
}
});
答案 2 :(得分:1)
我需要类似的东西,并为你提到的jquery ui占位符插件制作了一些mod。
http://jsfiddle.net/sigmabetatooth/5j55m/
随意反对并分享您的想法。
您也不会通过退格键或其他方式清除字段,占位符返回,当占位符存在时选择输入,光标将放在文本的开头。
@Daniel如果你有兴趣我把它推给你,请告诉我。
答案 3 :(得分:0)
您可以使用
在IE中制作占位符//在IE中设置占位符
$('input[type="text"]').each(function(){
var input = $(this);
$(input).val(input.attr('placeholder'));
$(input).focus(function(){
if (input.val() == input.attr('placeholder')) {
input.val('');
}
});
$(input).blur(function(){
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.val(input.attr('placeholder'));
}
});
});