如何在JQuery中单击最近元素(Checkbox)时禁用下一个元素(textarea)?

时间:2015-06-22 10:51:40

标签: javascript jquery html

点击复选框,我想要下一个最近的文本区域被禁用。

以下是摘录:

<div class="pure-u-1 pure-u-md-1-5">
  <input type="checkbox" value="true" class="fRegistrer" name="fRegistrer" id="fRegistrer">
</div>

<div class="pure-u-1 pure-u-md-1-5">
  <textarea cols="200" rows="5" class="normal" name="kommenter" id="kommenter"></textarea>
</div>
在Jquery中

 onclick="$(this).closest('.textnormal').find('textarea').attr('disabled',true)"

2 个答案:

答案 0 :(得分:3)

点击该复选框后,您可以使用closest()获取父divnext()以查找下一个同级div,然后find()包含textarea。试试这个:

$(':checkbox').change(function() {
    $(this).closest('div').next('div').find('textarea').prop('disabled', !this.checked);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="pure-u-1 pure-u-md-1-5">
  <input type="checkbox" value="true" class="fRegistrer" name="fRegistrer" id="fRegistrer">
</div>

<div class="pure-u-1 pure-u-md-1-5">
  <textarea cols="200" rows="5" class="normal" name="kommenter" id="kommenter" disabled="true">Foo bar</textarea>
</div>

答案 1 :(得分:0)

$('#fRegistrer').click(function () {
    debugger
    $(this).parent('.pure-u-1').next().find('#kommenter').attr('disabled',true);
});  

<强> DEMO