gpt4 book ai didi

jquery - 如果选择第一个 TD,则禁用一行中的所有其他 TD

转载 作者:行者123 更新时间:2023-12-01 03:56:35 25 4
gpt4 key购买 nike

我有一个包含多行的表。每行包含 5 列(或 5 个 TD)。第一个 TD 内部是一个文本字段和一个选择框。其他 4 个 TD 每个都包含一个表,其中包含一组单选按钮。

<tr bgcolor=#ffffff>
<td valign=center>
<select name=player1>
<option>0</option>
<option>1</option>
</select>
<input type="text" id="PlayerLocal1" name=p1name size=20>
</td>
<td>
<table border=1>
<tr>
<td>
<table border=0 cellspacing=0 cellpadding=0>
<tr>
<td><input type=radio name=p1o1 value="1B">1B
<td><input type=radio name=p1o1 value="FO">FO
</tr>
</table>
</td>
</tr>
</table></td></tr>

基本上,我希望禁用其他 4 个 TD 中的每一个 TD 中的单选按钮,除非用户在文本字段中输入值或在选择字段中选择一个值。

我正在考虑向每个 TR 添加一个类,然后以某种方式遍历不是第一个 TD 的每个 TD 并删除禁用属性(以启用它),但我无法理解如何创建条件语句或者我是否需要使用 Parent() 或 Siblings() 或其他东西来遍历。

快速澄清:我的表有多行和多列(为了节省空间,我只显示了 2 个 TD,但其他 3 个 TD 看起来就像第 2 个)。例如,第二行中的player1和p1name1将是player2和p2name2。因此,如果第一行中的文本/选择发生更改,则不应启用所有行中的所有单选按钮 - 仅启用第一行中的单选按钮。

感谢任何帮助!

最佳答案

$('input:radio').attr('disabled', true);

$('select[name=player1], input[name=p1name]').change(function(){
$('input:radio').attr('disabled', false);
});

我建议在属性周围加上引号,例如 name="p1name"而不是name=p1name 。如果你不这样做,疯狂的事情就会发生。

此外,当您提供元素 ID 或类时,您可以更精确地确定哪些元素被选择,哪些没有被选择。举例来说,您只想禁用其中一个单选按钮,您可以轻松做到这一点,而如果没有 id,则要困难得多。

根据要求:

给选择和输入一个类,例如

<select class="affector"></select>
<input type="text" class="affector" />

你可以这样遍历:

$('.affector').change(function(){
$(this).parents('tr').find('input:radio').attr('disabled', false);
});

如果您想在 <tr> 中的某个位置有更多单选按钮,并且您只想启用一个选定的组,同样,开设类(class)会很有帮助。您可以用类选择器替换 .find() 中的“input:radio”并且只有那些会受到影响。

添加:

如果它们是页面上唯一的选择和文本输入,您也可以放弃添加类并使用类型选择器:

$('select, input:text').change(function(){
$(this).parents('tr').find('input:radio').attr('disabled', false);
});

关于jquery - 如果选择第一个 TD,则禁用一行中的所有其他 TD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2026348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com