无法使用 JavaScript 在文本框上设置焦点
unable to set focus on textboxes using javascript
我正在尝试在按表键上将焦点 1 个 1 设置在文本框上,但它对我不起作用。
这是我尝试过的代码:
function showstep2() {
document.getElementById('step2').style.visibility = 'visible'
document.getElementById('prevOrdQuan').focus();
}
function showstep3() {
document.getElementById('step3').style.visibility = 'visible';
document.getElementById('takeOutAmt').focus();
}
function showstep4() {
document.getElementById('step4').style.visibility = 'visible';
document.getElementById('compsPerWeek').focus();
}
.HTML:
<table style="width: 100%;" align="left">
<tbody>
<tr>
<td>How many TakeOut Orders do You do each week?</td>
<td><input tabindex="1" type="text" name="prevOrdQuan" id="prevOrdQuan" size="6" value="7" onblur=" doCalc1(); showstep2();" /></td>
</tr>
</tbody>
</table>
<table id="step2" style="width: 100%; visibility: hidden;" align="left">
<tbody>
<tr>
<td>How many NEW TakeOut Orders do You expect each week? (15% Expected)</td>
<td><input tabindex="2" type="text" name="newOrdQuan" id="newOrdQuan" size="6" value="7" onblur="doCalc(); showstep3();" /></td>
</tr>
</tbody>
</table>
<table id="step3" style="width: 100%; visibility: hidden;" align="left">
<tbody>
<tr>
<td>How Much Is Your Average Takeout Order?</td>
<td><input tabindex="3" type="text" name="takeOutAmt" id="takeOutAmt" size="6" value="20" onblur="doCalc2(); showstep4();" /></td>
</tr>
</tbody>
</table>
有 3 个文本框,对于第一个文本框,我像这样将焦点设置为加载:
function setFocus() {
document.getElementById("prevOrdQuan").focus();
}
它为第一个文本框设置焦点。在第一个文本框上按 Tab 键后,它会显示第二个文本框,但焦点未设置在第二个文本框上。
这只是我需要解决的问题。
您在showstep2
函数中遇到问题,您正在使用 id prevOrdQuan
(即第一个文本框)聚焦元素。我想你想集中精力newOrdQuan
.
所以改变
document.getElementById('prevOrdQuan').focus();
自
document.getElementById('newOrdQuan').focus();
它应该有效。
编辑
您还需要文本框下方的任何可聚焦内容(其他输入等)。否则,如果按第一个(也是唯一的)文本框上的 Tab,浏览器将聚焦地址栏,从而在下一个文本框上触发 onblur 事件并同时显示这两个文本框。以下是我的意思的一个例子:http://jsfiddle.net/24TK4/1/
第二次编辑
我认为这是问题的优雅解决方案:http://jsfiddle.net/24TK4/2/
查看 HTML 代码的链接,它只显示一个不可见的链接。
相关文章:
- 在jAlert之后设置焦点
- 设置焦点动态创建的文本区域
- 渲染后如何在输入字段上设置焦点
- 如何在动态树标题中的输入字段上设置焦点
- react:如何通过点击处理程序设置焦点
- 在ADF弹出窗口中设置焦点组件
- 如何在隐藏的文本框上设置焦点
- EmberJS中的全局keyDown/keyPress事件,而无需设置焦点
- 弹出窗口设置焦点
- 尝试以编程方式设置焦点不适用于 Firefox
- 如何在 D3.js力定向图中设置焦点节点
- 无法在 Firefox/Opera 中设置焦点
- 无法使用 JavaScript 在文本框上设置焦点
- 在文本区域字段中设置焦点和突出显示
- 在jquery/javascript的输入框中的特定项目之后设置焦点
- 通过单击元素设置焦点,但不包括某些子项
- 客户端按键处理事件、设置焦点功能、__doPostBack ASP.NET
- 使用 jQuery 的 .focus() 在 Mac 上的 Firefox 中设置焦点
- 使用主镜头设置焦点
- 如何在aspx页面中的用户控件文本框上设置焦点