在更改选择框时启用文本区域

时间:2015-06-03 15:32:10

标签: javascript jquery

我有一些选择框以及文字区的数组,其中 id

  <div class="reasons">
       <select id="reason" class="reason_select" name="reason[]">
           <option>Please Select</option>
           <option value="misc">Misc</option>
        </select>
        <textarea id="reason_comment" name="reason_comment[]" disabled="disabled/>

        <select id="reason" class="reason_select" name="reason[]">
           <option>Please Select</option>
           <option value="misc">Misc</option>
        </select>
        <textarea id="reason_comment" name="reason_comment[]" disabled="disabled/>

        <select id="reason" class="reason_select" name="reason[]">
           <option>Please Select</option>
           <option value="misc">Misc</option>
        </select>
        <textarea id="reason_comment" name="reason_comment[]" disabled="disabled/>
  </div>

在这三对中,在更改任何选择框时,我需要启用相应的textarea。

$(document).on("change", ".reason_select", function(){
    //not getting where to start and how to identify corresponding textarea.
});

4 个答案:

答案 0 :(得分:1)

$(document).on("change", ".reason_select", function(){
    $(this).next().prop("disabled",false)
});

答案 1 :(得分:1)

  

没有从哪里开始以及如何识别相应的textarea。

首先要做的是不要对多个元素使用相同的id。见Why is it a bad thing to have multiple HTML elements with the same id attribute?

您可以使用next()代替

$(document).on("change", ".reason_select", function(){
    $(this).next('textarea').prop('disabled',false);
});

答案 2 :(得分:1)

HTML中的标识符必须是唯一的好的阅读Why is it a bad thing to have multiple HTML elements with the same id attribute?

您可以使用$.fn.next()遍历直接兄弟。

使用

$(document).on("change", ".reason_select", function(){
    $(this).next('textarea').prop('disabled', false)
});

答案 3 :(得分:1)

您需要使用唯一 ID。而是在文本框中创建一个类:

class="reason_comment"
^^^^^

在jQuery中:

 $(document).on("change", ".reason_select", function(){
  $(this).next('.reason_comment').prop('disabled',false);
 });