javascript - 遍历表行并禁用第二列中的输入

标签 javascript html-select

请看下面的代码。

<table>
 <tr>
     <td>
          <select name='td1'>
               <option value=1>One</option>
               <option value=2>Two</option>
               <option value=3>Three</option>
          </select>
     </td>
     <td>
          <select name='td2'>
               <option value=1>One</option>
               <option value=2>Two</option>
               <option value=3>Three</option>
          </select>
     </td>
  </tr>


</table>

JavaScript:

<script>
document.getElementsByTagName("tr").each(function(){
   $(this).getElementsByTagName("td")[1].getElementsByTagName("select").disabled=true;
})
</script>

要求是 1. 默认情况下,第二列中的选择字段(即第二个 td 的选择)必须禁用。 2. 只有当用户在第一个选择字段中选择第三个选项时,第二个选择字段才能启用。 3.解决方案必须是纯javascript(不使用jquery)

提前致谢。

最佳答案

Array.from(document.querySelectorAll('tr')).forEach(tr => {
    const secondSelect = tr.children[1].querySelector('select');
    secondSelect.disabled = true;
    tr.querySelector('td select').addEventListener('change', function() {
        secondSelect.disabled = (this.value != 3);
    });
});

关于javascript - 遍历表行并禁用第二列中的输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172179/

相关文章:

javascript - ChartJS - 如何显示单个元素为一条线的折线图? (不是一个点)

javascript - Rails 模型验证挂起 PUT 请求

javascript - Onchange 操作下拉列表

javascript - 当我单击按钮时需要通过函数运行 &lt;input&gt; (使用 Bootstrap )

javascript - 在 NodeJS 中进行 urldecode (php) 的最佳方式

javascript - d3 - 模拟 x Axis 的标签

css - <SELECT> 如果 Chrome 中的宽度较小,则将文本换行到下一行

jquery - 使用 jQuery 在 IE 中隐藏选择选项

c# - 为下拉列表设置标题

jquery - 设置选择框的选中选项