有人可以帮助我......
我有一个文本框,默认情况下在页面加载时是只读的。在这个文本框的点击事件中,我必须做两件事。
为此,我编写了代码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();
});
答案 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)