单击每个表格行中的复选框时启用文本框
Enable textbox on click of checkbox in each table row
我有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
属性考虑checked
checkbox
的属性
[].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>
请尝试以下代码:Jquery:
$(function(){
$('.checkme').click(function(){
if($('input[name='+ $(this).attr('value')+']').attr('disabled') == 'disabled'){
$('input[name='+ $(this).attr('value')+']').attr('disabled', false);
}else{
$('input[name='+ $(this).attr('value')+']').attr('disabled', true);
}
});
})
您可以使用 prop 来启用和禁用输入元素
$('.checkme').click(function(){
var element = $(this).closest('tr').find('input[type="text"]');
if($(this).is(':checked'))
element.prop( "disabled", false );
else
element.prop( "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>
相关文章:
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 单选按钮的验证(启用)&使用Jquery Optimization从复选框中选择submit按钮
- 如何使用复选框启用多个元素
- 如何使用复选框启用选项并通过本地存储进行保存
- 复选框启用/禁用在IE中不起作用
- 如何禁用基于另一个复选框启用复选框
- 使用动态添加的复选框启用/禁用按钮
- 组合框更改复选框启用
- 复选框启用和禁用文本区域
- 如何通过单击复选框启用输入
- 复选框启用 Onload 以显示其他元素
- 为什么可以't我使用复选框启用/禁用我的文本框
- jQuery复选框启用/禁用文本输入和添加/删除默认值
- 复选框启用非活动字段
- 使用复选框启用调用拖动
- 复选框启用或禁用的Jquery代码
- 复选框启用/禁用文件上传.当未选中复选框时,记录中的文件将被删除
- 使用JS通过复选框启用文本框
- 寻找复选框启用-禁用编码技术:减少JavaScript代码的技巧
- 通过选中复选框启用多个输入