谁能帮我一下……
我有一个文本框,默认情况下是只读的页面加载。在点击这个文本框的事件时,我必须做两件事。
- 使其可编辑
- 关注文本框
为此,我写了一个代码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();
});
IE的弊病之一是大多数浏览器不自动更新DOM。你要做的就是取消元素的焦点,然后重新聚焦,使其可编辑。
试试这个方法,它会解决你的问题在IE
$("#testId").click(function () {
$(this).removeAttr("readonly").blur().focus();
});
尝试设置focus
的超时时间。
$("#testId").click(function(){
$(this).removeAttr("readonly");
setTimeout(function() {$(this).focus(); }, 10);
});
(离这里)