javascript - 如何在一组单选和输入字段上使用 tabindex 和箭头键

标签 javascript html

我有一个类似于下图所示的表格。有一组radio和对应的输入框。

form page

它应该遵循的条件

  1. 第一个选项卡索引选择组 1 的第一个单选按钮。如果必须更改选择,我可以使用箭头键
  2. 第二个选项卡索引应该从组 2 中选择第一个 radio 。如果必须更改选择,我可以使用箭头键
  3. 在第 2 组中,如果我再次按 Tab,它应该聚焦于与 radio 相对应的文本框
  4. 再次按 Tab 键应该将焦点转到第 3 组文本框

除了选择第 2 组的第一个 radio 时,以上所有条件都有效。按选项卡确实将其带到相应的文本框。但是再次按下选项卡时,它会转到第 2 组的另一个文本框(这不应该发生)。

请帮忙。 HTML代码如下

<html>
     <body>
      Please select gender (Group 1)<br>
       <input type="radio" checked name="gender" tabindex="1" value="male"> Male<br>
       <input type="radio" name="gender"tabindex="1" value="female"> Female
    <br><br>


      Please select one of following (Group 2)<br>
       <input type="radio" checked name="payment"tabindex="2" value="amount"> $<input type="text" tabindex="2.1"><br>
       <input type="radio" name="payment" tabindex="2" value="installment">#<input type="text" tabindex="2.1">
      <br><br>


       Please select payment date (Group 3)<br>
       <input type="text" tabindex="3">

     </body>
    </html>

<< 当光标位于如图所示的位置时尝试按 tab 键 >>

最佳答案

由于您的帖子带有 javascript 标签,我认为 javascript 是允许的。禁用输入字段将防止对其进行“制表”。因此,默认情况下禁用“#”后的文本字段(通过添加 disabled="disabled")并将 onchange-events 添加到单选按钮以禁用 '$' 后的文本字段和在“#”之后启用文本字段(反之亦然)。

onchange="document.getElementById('amount').disabled=null; document.getElementById('installment').disabled='disabled'; "

并将正确的 id 添加到文本字段,这样 javascript-selectors 就会工作。

完整代码:

<html>
     <body>
      Please select gender (Group 1)<br>
       <input type="radio" checked name="gender" tabindex="1" value="male"> Male<br>
       <input type="radio" name="gender"tabindex="1" value="female"> Female
    <br><br>


      Please select one of following (Group 2)<br>
       <input type="radio" checked name="payment"tabindex="2" value="amount" onchange="document.getElementById('amount').disabled=null; document.getElementById('installment').disabled='disabled'; "> $<input type="text" tabindex="2.1" id="amount"><br>
       <input type="radio" name="payment" tabindex="2" value="installment" onchange="document.getElementById('amount').disabled='disabled'; document.getElementById('installment').disabled=null; ">#<input type="text" tabindex="2.1" disabled="disabled" id="installment">
      <br><br>


       Please select payment date (Group 3)<br>
       <input type="text" tabindex="3">

     </body>
    </html>

关于javascript - 如何在一组单选和输入字段上使用 tabindex 和箭头键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45356424/

相关文章:

html - base64 格式图像发出服务器请求

javascript - 条件 ng-click 中的函数和变量赋值

javascript - React 的问题(刚刚开始学习)

javascript - timer._repeat 不是函数?

javascript - 如何让我的 HTML 按钮调用我的 Javascript?

php - 在 YII 中删除特定页面的页眉和页脚的最佳方法

javascript - 如何使用 jquery 转换图像?

javascript - .select() 在 Chrome 中无法正常运行

javascript - 设置生效前的预览

jquery - 如何只更新点击元素的样式