使用JQuery 1.11处理项目。我有多行数据,每行都有两个选择框。在将第一行设置为特定值之前,应禁用每行中的第二个。
我拥有的代码可以工作...但是奇怪的是,仅当您按顺序执行时,它才有效。如果我除了第一个以外的其他任何东西,都不会更新。
有人可以告诉我我做错了什么吗?谢谢!
这是一个小提琴: https://jsfiddle.net/JCOvergaar/xLdp6wgo/9/
为了后代,这是代码:
$(document).on('change', '.ThisFirstThings', function() {
var dataFlag = $(".ThisFirstThings option:selected").attr('data-flag');
if (dataFlag == 1) {
$(this).closest("tr").find(".SecondThing").prop('disabled', false)
} else {
$(this).closest("tr").find(".SecondThing").prop('disabled', true)
}
}).trigger('change');
<form name="ThisForm" id="ThisForm">
<div id="divDVT">
<table>
<tbody>
<tr>
<td>
<select name="ThisFirstThing_1" id="ThisFirstThing_1" class="ThisFirstThings">
<option value="106" data-flag="0">No change</option>
<option value="107" data-flag="0">No change</option>
<option value="205" data-flag="1">Should Enable -></option>
</select> </td>
<td>
<select name="ThisSecondThing_1" id="ThisSecondThing_1" class="SecondThing" disabled="">
<option value="43">one thing</option>
<option value="82">another</option>
</select> </td>
<td>
<input type="Submit" name="ThisSubmit" value="Submit"></td>
</tr>
<tr>
<td>
<select name="ThisFirstThing_2" id="ThisFirstThing_2" class="ThisFirstThings">
<option value="106" data-flag="0">No change</option>
<option value="107" data-flag="0">No change</option>
<option value="205" data-flag="1">Should Enable -></option>
</select> </td>
<td>
<select name="ThisSecondThing_2" id="ThisSecondThing_2" class="SecondThing" disabled="">
<option value="43">one thing</option>
<option value="82">another</option>
</select> </td>
<td>
<input type="Submit" name="ThisSubmit" value="Submit"></td>
</tr>
</tbody>
</table>
</div>
</form>
答案 0 :(得分:0)
尝试更改
var dataFlag = $(".ThisFirstThings option:selected").attr('data-flag');
到
var dataFlag = $(this).find("option:selected").attr('data-flag');
原始dataFlag
正在获取页面中的所有select.ThisFirstThings
。
更改目标仅更改了select.ThisFirstThings