2

我有一个 jsp/html 页面。这个页面是从两个不同的链接访问的。它是 Menu1-->demo.html 页面和 Menu2-->demo.html 页面(在我的情况下是它的 jsp) 在 demo.html 页面中,我有一个默认禁用的文本框。

<input class="mytextinputtextField" type="text" id="countryOfOrigin"
readonly style="background-color:#DCDCDC"   />

现在,当从 Menu2 访问 demo.html 页面时,我正在使用隐藏参数检查它并再次启用文本框并将焦点设置在文本框上。

if(document.getElementById("submenu_name").value=="PM")
{
   document.getElementById("countryOfOrigin").focus();
}

该字段已启用并且光标可见,但如果我键入文本,则不会在文本框中键入文本。我需要点击文本框来输入文本。我认为这是因为禁用并再次启用该字段。请任何人都可以帮助我从javascript中输入焦点事件的文本框。我没有使用 JQuery,浏览器是 IE 6

4

4 回答 4

0

尝试这个 :

document.getElementById("countryOfOrigin").removeAttribute('readOnly');

jQuery版本:

jQuery('#countryOfOrigin').removeAttr('readOnly');
于 2013-03-04T13:12:00.717 回答
0

谢谢您的帮助。我找到了解决方案,或者可能会说解决方法。我正在粘贴可能对其他人有用的代码

if(document.getElementById("submenu_name").value=="PM")
{
 document.getElementById("countryOfOrigin").focus();
 document.getElementById("countryOfOrigin").select();

}
于 2013-03-05T14:08:44.683 回答
0

您是否尝试过删除该属性?

document.getElementById("countryOfOrigin").Attributes.Remove("readonly");

或者

document.getElementById("countryOfOrigin").removeAttribute("readonly");
于 2013-03-04T13:30:53.157 回答
-1

这是一个非官方的解决方案,我们必须使用 setTimeout() 函数来延迟 focus() 的执行时间。

setTimeout(function() { document.getElementById('myInput').focus(); }, 10);

http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/

于 2013-03-04T12:53:11.043 回答