IE6 JavaScript问题 - 无法在字段中键入文本

时间:2011-07-27 21:48:23

标签: javascript jquery input internet-explorer-6 placeholder

我正在为没有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();
});

4 个答案:

答案 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;"
 ... >

当然你可以按照自己喜欢的方式实现它,上面只是展示了策略。