Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Readonly false后跟focus在i.e.7中不起作用_Javascript_Jquery_Html - Fatal编程技术网

Javascript Readonly false后跟focus在i.e.7中不起作用

Javascript Readonly false后跟focus在i.e.7中不起作用,javascript,jquery,html,Javascript,Jquery,Html,有人能帮我吗 我有一个文本框,在页面加载时默认为只读。点击这个文本框的事件,我必须做两件事 使其可编辑 将焦点放在文本框上 为此,我编写了一个代码removeAttr使其可编辑,然后focus()使其保持焦点 它在IE8+、FF和Chrome中正常工作。 但我也需要让它在IE7中工作,因为我们在客户端的兼容浏览器列表中有IE7 注意:问题仅限于焦点,单击后文本框变为可编辑。但是需要第二次点击来保持关注。希望只在第一次单击时完成 <input name="testId" id="test

有人能帮我吗

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

  • 使其可编辑
  • 将焦点放在文本框上
为此,我编写了一个代码
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();
});

$(“#testId”)。单击(函数(){
$(此).removeAttr(“只读”);
$(this.focus();
});

尝试设置
焦点的超时时间

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

(from)

IE的弊病之一是大多数EVEN不会自动更新DOM。您要做的是取消对元素的聚焦,然后再次聚焦以使其可编辑

试试这种方法,它会解决你在IE上的问题

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

让我们看看相关的HTML和JavaScript。正如@Anthony所说,您需要提供HTML和JavaScript代码,否则我们只是在瞎猜。使用代码编辑您的问题(用于StackOverflow中的代码格式说明),然后我们可以尝试帮助您,使其成为只读,直到用户单击为止,此时它将变为可编辑。这与最初的可编辑有什么不同?首先将其置于只读状态可以实现什么?@SDC单击文本框本身时,需要使其可编辑,并将焦点放在单击的文本框上。实际情况是,我有“n”个部分,每个部分有2个文本框。当页面加载时,所有部分都被禁用,单击任何文本框时,我需要删除该特定部分的两个输入的只读属性。重点应该放在点击的输入上。我仍然不知道正在实现的目标是什么,仅仅通过将它们设置为禁用的样式是无法实现的,直到它们被聚焦。试过了。但我的问题没有解决。尝试不同的时间间隔10、100、500和1000。没用。你用的是哪个版本的jquery?很高兴听到这个消息!我想你可以接受这个答案我已经在我的页面中包含了你的代码。我怎么能接受一个解决我问题的好答案呢?。再次感谢。