我正在为没有placeholder
属性支持的浏览器编写回退代码。我提出的功能在IE6以外的所有浏览器中都能完美运行。
问题在于:在对两个字段中的任何一个进行聚焦后,占位符文本会按预期消失,但我无法在字段中键入或粘贴任何文本!有时我会收到“错误84 - 未指定错误“但大部分时间都没有错误。
我在http://jsfiddle.net/CMWHx/以最简单的形式上传了有问题的代码(代码也在下面)
这真让我疯狂,我开始认为我的IE6副本很狡猾(这是一个MultipleIE安装),所以如果你们中的任何人有副本,我会很感激IE6可以快速查看上面的链接并确认您遇到的问题和我一样。
提前致谢:)
HTML
<input id="email_input" type="email" placeholder="Email" required="required" />
<input id="password_input" type="password" placeholder="Password" required="required" />
JavaScript (jQuery 1.6.2)
$("#email_input").val("Email").focus(function() {
if ($(this).val() == "Email")
{
$(this).val("");
}
}).blur(function() {
if ($(this).val() == "")
{
$(this).val("Email");
}
});
$("#password_input").hide().after("<input id=\"password_placeholder\" value=\"Password\" />").blur(function() {
if ($(this).val() == "")
{
$(this).hide();
$("#password_placeholder").show();
}
});
$("#password_placeholder").focus(function() {
$(this).hide();
$("#password_input").show().focus();
});
答案 0 :(得分:1)
如果有任何人使用IE6副本可以快速查看上面的链接并确认您遇到的问题与我相同,我将不胜感激。
我可以输入IE6上的字段。假装占位符消失,我输入的内容显示出来,无论是用鼠标聚焦还是用键盘标记。
答案 1 :(得分:0)
我看到了一个与你在运行IE6的Windows 7 VM中通过旧的Xenocode沙盒IE(包括页面加载时的错误84)描述的问题类似的问题。
但后来我用一个原生的,从未更新的IE6启动了一个Windows XP虚拟机,并且可以在没有错误的情况下加载你的小提琴,并且代码按预期工作。
所以,我觉得你在这里很好。
答案 2 :(得分:0)
我在IE6下在IETester中对此进行了测试,看起来功能正常。点击来回后,字段中的值被保留,我可以输入它们。
答案 3 :(得分:0)
与您的问题无关,但作为提示,您可以通过为输入提供默认值,然后使用默认值检查当前值来执行此操作,例如
<input value="email"
onfocus="if (this.value == this.defaultValue) this.value = '';"
onblur="if (this.value == '') this.value = this.defaultValue;"
... >
当然你可以按照自己喜欢的方式实现它,上面只是展示了策略。