只读错误,然后焦点不起作用,即7

时间:2013-01-04 12:17:22

标签: javascript jquery html

有人可以帮助我......

我有一个文本框,默认情况下在页面加载时是只读的。在这个文本框的点击事件中,我必须做两件事。

  • 使其可编辑
  • 专注于文本框

为此,我编写了代码removeAttr以使其可编辑,然后focus()继续关注它。

正如预期的那样在IE8 +,FF,Chrome中工作。 但我需要让它在IE7中工作,因为我们在客户端的兼容浏览器列表中有IE7。

注意:问题仅在于焦点,单击后文本框会变为可编辑。但是需要第二次点击才能保持关注。期待只在第一次点击时完成。

<input name="testId" id="testId" size="25" maxlength="40"  tabindex="21" class="width250" readonly="true"/>

$("#testId").click(function(){
   $(this).removeAttr("readonly");
   $(this).focus();
});

2 个答案:

答案 0 :(得分:1)

IE的一个问题是大多数evens不会自动更新DOM。你所做的是将元素重新聚焦并再次聚焦以使其可编辑。

尝试这种方法,它将解决您在IE上的问题

$("#testId").click(function () {
   $(this).removeAttr("readonly").blur().focus();
});

答案 1 :(得分:0)

尝试为focus设置超时。

$("#testId").click(function(){
   $(this).removeAttr("readonly");
   setTimeout(function() {$(this).focus(); }, 10);
});

(来自here