我有一个带有重复部分的小型网页表单,我有一个复选框,我想影响之前的隐藏字段,如下所示:
<td>
<label class="lblappUploadRequired" style="display: none"></label>
<input type="hidden" class="data" name="Approvals[0].appUploadRequired" value="false"/>
<input type="checkbox" onclick="changeUpReq()" />
</td>
function changeUpReq() {
alert($(this).prev().attr('name'));
$(this).prev().val(this.checked ? 'true' : 'false');
}
但是我得到的只是在我的警报中未定义并且未设置值。我在这里乱搞什么?
答案 0 :(得分:1)
尝试在事件处理程序中接收this
JS:
function changeUpReq(_this) {
alert($(_this).prev().attr('name'));
$(_this).prev().val(_this.checked ? 'true' : 'false');
}
HTML:
<input type="checkbox" onclick="changeUpReq(this)" />
这可能会解决您的问题。但最好是为它创建一个专用的事件处理程序。
答案 1 :(得分:1)
function changeUpReq()
您期望$(this)
是什么?
也许把它改成选择器?
$("input").on('click', function(el){
alert($(this).prev().attr('name'));
$(this).prev().val(this.checked ? 'true' : 'false');
}