Javascript 如何根据单选按钮选择在表中切换多个输入

Javascript 如何根据单选按钮选择在表中切换多个输入,javascript,jquery,html,jquery-selectors,Javascript,Jquery,Html,Jquery Selectors,假设以下html: <tr> <td> <label for="c1_testRdio">Have you taken any tests in this class?:</label> <br> <label>Yes<input type="radio" class="testRdio" name="c1_testRdio" value="Yes"><

假设以下html:

<tr>
    <td>
        <label for="c1_testRdio">Have you taken any tests in this class?:</label>
        <br>
        <label>Yes<input type="radio" class="testRdio" name="c1_testRdio" value="Yes"></label>
        <label>No <input type="radio" class="testRdio" name="c1_testRdio" value="No" checked></label>
        <label>How Many? <input type="text" class="howManyTests" name="c1_howManyTests" disabled></label>
    </td>
    <td>
        <label for="c1_whatGradesTests">What were your grades?:</label><br>
        <input type="text" name="c1_whatGradesTests" disabled>
    </td>
</tr>

您的代码有点凌乱,所以我重新构建了它:

我认为隐藏整个
div
更好。如果选择“否”,他们实际上不需要看到这些问题。

尝试以下方法:

$('.testRdio').change(function () {
    $(this).closest('tr').find('input[type="text"]').attr('disabled', this.value === 'No');
});
旧的jq版本没有prop,
attr
(也用于执行prop的工作)用于为禁用设置布尔值


此外,我还必须修复您的标记(现在我看到问题中已经修复了它)

创建显示为none(从dom中删除)的单选按钮,然后使用jquery查看是否选中('cq_testRdio'),然后将单选按钮的css更改为display(您可以使用slidetoggle进行动画),您缺少一个
“>
@RokoC.Buljan:眼力不错,但它实际上就在代码中。在复制/粘贴过程中意外丢失,因此不是问题。回答得好,不幸的是jQuery 1.5与请求不兼容。此外,这将更改页面上的所有文本输入。我只想更改原始帖子中提供的2个。更新为1.5兼容。工作完美。我将在几分钟内接受最佳答案。如果我可以问的话,标记有什么问题?@Prefix no您最初的标记,刚才看到您更新了您的问题修复了标记:)在这种情况下,隐藏整个div是不可取的。尽管代码很可靠,干杯。
$('.testRdio').change(function(){
   $(this).closest('tr').find('input[type="text"]').attr('disabled',$(this).val()=="No");
});
$('.testRdio').change(function () {
    $(this).closest('tr').find('input[type="text"]').attr('disabled', this.value === 'No');
});