在一个非常简单的问题上敲打我的脑袋(如果你知道在哪里寻找它我想)我会征求你的意见。
我有一个这样的表,用PHP构建:
echo '<tr><td class="report"><input type="checkbox" id="crediti['.$i.']" name="crediti['.$i.']" value="'.$cred['id_cre'].'" ';
if($check == 1){ echo "checked";}else{ echo "";}
echo' /></td><td class="report">'.$cred['id_cre'].'</td>
<td class="report">'.number_format($cred['gbv_tot'],'2',',','.').'</td>
<td class="report"><input class="input_field" type="text" name="chiesto['.$i.']" value="'.$chiesto.'"></td>
<td class="report"><input type="text" name="ammesso['.$i.']" value="'.$ammesso.'"></td>
<td class="report"><input type="text" name="data_ammesso['.$i.']" value="'.$data_ammesso.'" class="data_field"></td></tr>';
如果用户在行的某个输入字段中输入值,我还有一些jquery代码来检查每个复选框。
$('.input_field').blur(function(){
if($(this).val()!=''){
$(this).closest("input").prop("checked", true);
}
});
我已经确认选择器正在识别正确的复选框,但我无法将该复选框设置为已选中。没有任何东西被抛出作为错误。什么都没发生。我究竟做错了什么?我应该在哪里寻找错误?
提前致谢!
答案 0 :(得分:2)
您需要将同一行中的复选框作为目标。
.closest()找到匹配的祖先元素,因此复选框不是复选框元素的祖先,这就是它无效的原因。
您需要找到已更改字段的tr
父级,然后找到其中的复选框。
$(this).closest("tr").find("input:checkbox").prop("checked", true);