javascript - 单击每个表行中的复选框启用文本框

标签 javascript html

我有 jquery 代码。我想在 javascript 中做同样的事情

//$('.checkme').attr('checked', true);
    $('.checkme').click(function(){
        if($('input[name='+ $(this).attr('value')+']').attr('disabled') == true){
            $('input[name='+ $(this).attr('value')+']').attr('disabled', false);
        }else{
            $('input[name='+ $(this).attr('value')+']').attr('disabled', true);
        }
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
    <tr>    
        
        <td>
            <input type="checkbox" name="sd3" value="mfi_nam9" class="checkme"/></td>  
            <td>First Value </td>
           <td > <input type="text" name="mfi_nam9" class="text required" id="mfi_name" disabled ></td>
        
    </tr>
    <tr>    
        
        <td>
            <input type="checkbox" name="sd2[]" value="mfi_nam8"  class="checkme" /></td>
            <td>Second Value </td>
            <td><input type="text" name="mfi_nam8" class="text required" id="mfi_name" disabled  >
        </td>
    </tr>
</table>

最佳答案

  • 使用querySelectorAll选择所有类为checkme的元素 ('.checkme[type="checkbox"]')
  • 循环遍历所有选定的元素并附加change监听器
  • 使用 this.parentNode.parentNode 选择父 tr 元素并 使用以下命令选择 input 元素,该元素是 tr 元素的 child querySelector('.text[type="text"]')
  • 考虑到 input 元素的 disabled 属性 checkboxchecked 属性

[].forEach.call(document.querySelectorAll('.checkme[type="checkbox"]'), function(elem) {
  elem.addEventListener('change', function() {
    this.parentNode.parentNode.querySelector('.text[type="text"]').disabled = !this.checked;
  });
})
<table>
  <tr>
    <td>
      <input type="checkbox" name="sd3" value="mfi_nam9" class="checkme" />
    </td>
    <td>First Value</td>
    <td>
      <input type="text" name="mfi_nam9" class="text required" id="mfi_name" disabled>
    </td>
  </tr>
  <tr>
    <td>
      <input type="checkbox" name="sd2[]" value="mfi_nam8" class="checkme" />
    </td>
    <td>Second Value</td>
    <td>
      <input type="text" name="mfi_nam8" class="text required" id="mfi_name" disabled>
    </td>
  </tr>
</table>

关于javascript - 单击每个表行中的复选框启用文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36908810/

相关文章:

html - 容器流体中的中心容器

html - Angular 与 CSS

html - 不能让我的页脚粘住并为内容提供滚动条

Javascript - 将带有参数的函数添加到 addEventListener 会导致该函数触发

javascript - 如何在javascript中动态添加对象的属性?

javascript - 提高 asp.net 网页性能的技巧

javascript - 为什么这个星级评级的 javascript/CSS 不起作用?

javascript - 如何缩小并连接一个充满 JavaScript 文件的目录?

javascript - 标题在滚动时缩小,但当滚动到变化点时会发生闪烁

html - 使用 flexbox 居中元素时的额外空间