选择上一个隐藏元素

时间:2016-03-10 14:24:45

标签: javascript jquery

我有一个带有重复部分的小型网页表单,我有一个复选框,我想影响之前的隐藏字段,如下所示:

<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');
    }

但是我得到的只是在我的警报中未定义并且未设置值。我在这里乱搞什么?

2 个答案:

答案 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');
    }