当我单击复选框时,应删除复选框的相应隐藏值或使用jquery或JavaScript更改隐藏输入字段的名称。
HTML:
<tr>
<td><input type="checkbox" value="noseat" id="seat" name="seat[]" onclick="return oncl(this);">
Check
<input type="hidden" value="off" name="seat[]" class="hiddensesat">
</td>
<td><input type="checkbox" value="noseat" id="seat" name="seat[]" onclick="return oncl(this);">
Check
<input type="hidden" value="off" name="seat[]" class="hiddensesat">
</td>
<td><input type="checkbox" value="noseat" id="seat" name="seat[]" onclick="return oncl(this);">
Check
<input type="hidden" value="off" name="seat[]" class="hiddensesat">
</td>
</tr>
JS:
function oncl(){
alert($(this).is(':checked'));
if($(this).is(':checked')){
alert($(this).closest('td').find(".hiddensesat").val());
}
}
警告始终显示为false;
答案 0 :(得分:3)
您将被点击的元素引用作为参数传递,因此您需要更改函数定义以接受参数并使用它而不是在函数内使用this
。
function oncl(el) {
alert(el.checked);
$(el).closest('td').find(".hiddensesat").val(el.checked ? 'on' : 'off')
}
作为旁注,我建议使用jQuery事件处理程序而不是内联函数,比如
//dom ready handler
jQuery(function () {
//change event handler for checkbox elements with name seat[]
$('input[type="checkbox"][name="seat[]"]').change(function () {
$(this).closest('td').find(".hiddensesat").val(this.checked ? 'on' : 'off')
});
})