Javascript焦点函数没有按预期工作

javascript focus function not working as expected

本文关键字:工作 焦点 函数 Javascript      更新时间:2023-09-26

我有一个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,浏览器是i.e. 6

试试这个:

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

jQuery版本:

jQuery('#countryOfOrigin').removeAttr('readOnly');

是否尝试删除该属性?

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

document.getElementById("countryOfOrigin").removeAttribute("readonly");

谢谢你的帮助。我已经找到了解决办法,或者可以说变通。我正在粘贴可能对其他人有用的代码

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

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

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

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