我有一些选择框以及文字区的数组,其中 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.
});
答案 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);
});