jquery - 为什么我的 jquery 只能按顺序工作?
问题描述
在使用 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>
解决方案
尝试改变
var dataFlag = $(".ThisFirstThings option:selected").attr('data-flag');
至
var dataFlag = $(this).find("option:selected").attr('data-flag');
原始页面中的dataFlag
所有select.ThisFirstThings
内容。更改目标仅更改select.ThisFirstThings
推荐阅读
- multithreading - 循环中的 Perl 线程
- algorithm - 解释算法(使用快速排序中的分区)
- ios - 在 SwiftUI 中播放音频时无法更新行颜色
- bash - 我可以在常规 shell 中使用提示工具包吗
- flutter - 单击Listview项目后如何更改父数据小部件
- radius - 如何使用回复消息配置 Microsoft NPS 服务器以进行 RADIUS 身份验证?
- java - Android Camera2没有获得物理相机
- javascript - “等到页面不包含元素”关键字是否有任何替代方法?
- html - 在 CSS 中重新创建一个带有点的圆形滑块,而不是图片
- c++ - 使用时显示分段转储错误