为什么我的jquery只按顺序工作?
使用jQuery1.11在项目中工作。我有多行数据,每行有两个选择框。应禁用每行中的第二个,直到第一个设置为特定值 我的代码是有效的。。。但奇怪的是,只有按顺序进行操作,它才会起作用。如果我先去除第一个以外的任何地方,它都不会更新 有人能告诉我我做错了什么吗?谢谢 这是一把小提琴: 对于子孙后代,以下是代码:为什么我的jquery只按顺序工作?,jquery,Jquery,使用jQuery1.11在项目中工作。我有多行数据,每行有两个选择框。应禁用每行中的第二个,直到第一个设置为特定值 我的代码是有效的。。。但奇怪的是,只有按顺序进行操作,它才会起作用。如果我先去除第一个以外的任何地方,它都不会更新 有人能告诉我我做错了什么吗?谢谢 这是一把小提琴: 对于子孙后代,以下是代码: $(document).on('change', '.ThisFirstThings', function() { var dataFlag = $(".ThisFirstThin
$(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');
不变
不变
应启用->
一件事
另一个
不变
不变
应启用->
一件事
另一个
尝试更改
var-dataFlag=$(“.ThisFirstThings选项:选中”).attr('data-flag')代码>
到
var-dataFlag=$(this).find(“选项:选中”).attr('data-flag')代码>
原始dataFlag
正在获取页面中的所有select.ThisFirstThings
。
仅更改目标已更改选择。ThisFirstThings
尝试更改
var-dataFlag=$(“.ThisFirstThings选项:选中”).attr('data-flag')代码>
到
var-dataFlag=$(this).find(“选项:选中”).attr('data-flag')代码>
原始dataFlag
正在获取页面中的所有select.ThisFirstThings
。
更改目标仅更改select.ThisFirstThings
使用$(this).find(“选项:已选”)
而不是var dataFlag=$(“.ThisFirstThings选项:已选”).attr('data-flag')代码>非常感谢!这就解决了!使用$(this.find(“option:selected”)
而不是var-dataFlag=$(“.ThisFirstThings选项:selected”).attr('data-flag')代码>非常感谢!这就解决了!谢谢,伊森,这解决了问题。我也很高兴知道为什么它不起作用。使我在另一个环境中不再犯错误的可能性更大。谢谢,伊森——这解决了问题。我也很高兴知道为什么它不起作用。这样我就更有可能在另一个环境中不再犯同样的错误。
<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>