勾选特定注册类型必填复选框时,关联复选框全选问题修复
解决方法
你需要调整jQuery代码,让它只针对当前问题行里**相同注册类型(匹配value值)**的"纳入注册类型"复选框进行勾选,而不是选中所有同类复选框。这里是修改后的代码:
$(function() { $('.mandatorycheckbox').change(function() { if (this.checked) { // 获取当前必填复选框对应的注册类型value const targetValue = $(this).val(); // 找到当前所在的问题行<tr> const $currentRow = $(this).closest('tr'); // 在当前行里找到对应value的rtypecheckbox并勾选 $currentRow.find(`.rtypecheckbox[value="${targetValue}"]`).prop('checked', true); } }); });
代码细节说明:
$(this).closest('tr'):精准定位到当前必填复选框所在的问题行,确保我们只操作这一行内的元素,不会干扰其他问题的复选框。$currentRow.find(...):在当前行范围内筛选出class="rtypecheckbox"且value与当前必填框完全一致的复选框,实现注册类型的精准匹配。- 仅当复选框被勾选时执行操作,完美契合你"必填项必须先被纳入表单"的业务逻辑。
额外小建议:
你的HTML里存在重复的id属性(比如多个input的id="1"),这不符合HTML规范,可能导致后续JS/CSS选择器出现异常。建议给每个input设置唯一ID,比如:
<!-- 第一个问题的general纳入框 --> <input ... id="question1_rtype_1"> <!-- 对应第一个问题的general必填框 --> <input ... id="question1_mandatory_1">
内容的提问来源于stack exchange,提问作者user9289573
相关产品推荐
相关产品推荐

