【发布时间】: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