【问题标题】:Javascript text box value and focus orderJavascript文本框值和焦点顺序
【发布时间】:2011-02-22 14:39:05
【问题描述】:

我有以下 Javascript:

function PageOnLoadHandler() {
    outputFieldElement = document.getElementById("ConsultantCode"); //

    var position = window.location.href.search("\\?");
    if (position != -1) {
        var querystring = window.location.href.substring(position);
        outputFieldElement.value = querystring;
   }
        outputFieldElement.focus();
}

对于以下html(删减):

<body onload="PageOnLoadHandler();">
<br/>Enter Consultant Name:

    <input name="ConsultantCode" type="text" id="ConsultantCode" size="30" />
    <br/><center id="ErrorMessage"></center>
</body>

它获取当前的 url 字符串,并尝试将它的查询字符串部分放入文本框中。我的问题是,这只有在我注释掉 outputFieldElement.focus() 行时才有效。如果此行存在 - 在设置值之前或之后(或两者),我无法在文本框中看到值,直到我输入 - 然后值出现!有什么想法吗?

我希望两者都有值,并将焦点设置到文本框。

一个复杂的问题 - 这不是在 PC 上,而是在 Mitel IP 电话上。所以我一直无法找出它使用的是什么浏览器。

【问题讨论】:

  • 听起来像是浏览器的问题。
  • 我认为关于它在带有一些未知(至少未报告)浏览器的手机上的小细节可能非常重要,因为(除了“outputFieldElement”在没有@987654324 的情况下声明的事实@ !!)该代码看起来不错,并且在元素上调用“focus()”不会在“真实”浏览器中导致此类问题。
  • 修复了 var 问题!我只是希望它真的不仅仅是一个浏览器问题,即使它很可能是。
  • 我尝试将 html 文本框的值放在代码后面 - 所以它嵌入在 html 中而不是 Javascript 中 - 它仍然不显示 - 所以很可能是浏览器问题!不过,作为记录,如果在上述 Javascript 结束时您设置了一个计时器函数以在几毫秒内设置焦点 - 那么它工作正常!

标签: javascript textbox focus


【解决方案1】:

尝试使用

window.onload = PageOnLoadHandler;

而不是使用&lt;body onload="....

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    相关资源
    最近更新 更多