javascript - 如何使用 jquery 禁用表中除单击的复选框之外的行和列复选框

标签 javascript jquery checkbox disabled-input

我尝试过以下代码。我已经禁用了该行中的复选框。现在我在禁用相应列时遇到问题。

在下面的代码片段中找到我的 HTML 和 JS 代码。

代码片段

$('input[type=checkbox]').click(function() {
  $(this).closest('tr')
    .find('input[type=checkbox]').not(this)
    .prop('disabled', this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<table class="reg_table">
		<tr>
			<th></th>
			<th>8-9</th>
			<th>9-10</th>
			<th>10-11</th>
			<th>11-12</th>
			<th>12-13</th>
			<th>13-14</th>
			<th>14-15</th>
			<th>15-16</th>
			
			
		</tr>

		  			
		<tr>
			<td>Company name 1</td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~8-9" /></td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~9-10" /></td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~10-11" /></td>
			<td><input type="checkbox"  alt="1" class="sss" name="Company name 1" value="Company name 1~11-12" /></td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~12-13" /></td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~13-14" /></td>
			<td><input type="checkbox"  alt="1" class="sss" name="Company name 1" value="Company name 1~14-15" /></td>
			<td><input type="checkbox" alt="1" class="sss" name="Company name 1" value="Company name 1~15-16" /></td>
			
			
			
		</tr>
		
				
		<tr>
			<td>Company name 2</td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~8-9" /></td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~9-10" /></td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~10-11" /></td>
			<td><input type="checkbox"  alt="2" class="sss" name="Company name 2" value="Company name 2~11-12" /></td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~12-13" /></td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~13-14" /></td>
			<td><input type="checkbox"  alt="2" class="sss" name="Company name 2" value="Company name 2~14-15" /></td>
			<td><input type="checkbox" alt="2" class="sss" name="Company name 2" value="Company name 2~15-16" /></td>
			
			
			
		</tr>
		
				
		<tr>
			<td>Company name 3</td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~8-9" /></td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~9-10" /></td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~10-11" /></td>
			<td><input type="checkbox"  alt="3" class="sss" name="Company name 3" value="Company name 3~11-12" /></td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~12-13" /></td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~13-14" /></td>
			<td><input type="checkbox"  alt="3" class="sss" name="Company name 3" value="Company name 3~14-15" /></td>
			<td><input type="checkbox" alt="3" class="sss" name="Company name 3" value="Company name 3~15-16" /></td>
			
			
			
		</tr>
		
				
		<tr>
			<td>Company name 4</td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~8-9" /></td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~9-10" /></td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~10-11" /></td>
			<td><input type="checkbox"  alt="4" class="sss" name="Company name 4" value="Company name 4~11-12" /></td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~12-13" /></td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~13-14" /></td>
			<td><input type="checkbox"  alt="4" class="sss" name="Company name 4" value="Company name 4~14-15" /></td>
			<td><input type="checkbox" alt="4" class="sss" name="Company name 4" value="Company name 4~15-16" /></td>
			
			
			
		</tr>
		
		
		
	</table>

注意:我正在使用<script src="jquery-1.7.1.min.js"></script>

最佳答案

你可以这样做:

$('input[type=checkbox]').click(function(){
    $(this).closest('tr')
    .find('input[type=checkbox]').not(this)
    .attr('disabled', this.checked);


    // Below is the added code
    var tdIndex = $(this).closest('td').index() + 1;
    $('table').find("tr td:nth-of-type(" + tdIndex + ")")
    .find('input[type=checkbox]').not(this)
    .attr('disabled', this.checked);

});

已在本地测试并按预期工作。将更新 fiddle 。

更新:这是 fiddle https://jsfiddle.net/sq3vrxy1/

关于javascript - 如何使用 jquery 禁用表中除单击的复选框之外的行和列复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38721116/

相关文章:

Javascript boolean 参数未正确传递

javascript - 延迟 Chosen.js 搜索过滤器

vba - 如何对多个复选框执行相同的代码来设置复选框值?

javascript - 显示带有 HTML 内容的模态窗口

PHP 变量到 JS - 一遍又一遍

javascript - 打开时jquery对话框刷新页面

javascript - 带有带有 React 和 Material UI 的复选框的过滤表

forms - 如何使用Symfony 2预选表单单选项目?

javascript - SVG 图表 - 我如何调整 svg 的高度,以便所有标签自动适合内部

javascript - jQuery 处理 JSON 响应