当您不使用'我不知道身份证
Enable Sequential Select Menus when you don't know the IDs
我有一组选择菜单,它们是根据产品数据库(WooCommerce)中的变体构建的。它们可以有任意数量,通常从3到8个。一些简单的东西,比如:
<select id="*Could be Anything*" name="*Could be Anything*">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
<select id="*Could be Anything*" name="*Could be Anything*" disabled="true">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
<select id="*Could be Anything*" name="*Could be Anything*" disabled="true">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
我想根据上一个菜单中的选择顺序启用它们。我不需要更改新菜单中的任何选项-我只需要启用它。
因此,如果Select1≠"Choose an option…",则启用Select2,如果Select2≠"Choose an options…"则启用Select3。
问题是我无法预测ID会是什么,所以我不能使用的变体
$(function() {
$("#theID").change(function() {
if ($(this).val() == "Choose an option…") {
$("#theID_2").prop("disabled", true);
}
else
$("#theID_2").prop("disabled", false);
});
});
那么,我的问题是:有没有一种方法可以在不事先知道id的情况下,单独使用jQuery对Select菜单的启用/禁用进行排序?
这只是一个疯狂的想法吗?我最好尝试动态构建javascript,读取它们是否写入Selects服务器端的id?
如果选择按顺序排列,则可以使用JQuery.next():
http://api.jquery.com/next/
$("select").on('change', function(){
$(this).next("select").prop("disabled", false);
});
示例:
http://jsfiddle.net/Zv72Y/
如果所有这些都选择在一个容器中,那么您可以为每个容器附加一个事件侦听器,这将解锁下一个选择元素:
HTML:
<div class='container'>
<select id="*Could be Anything*" name="*Could be Anything*">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
<select id="*Could be Anything*" name="*Could be Anything*" disabled="true">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
<select id="*Could be Anything*" name="*Could be Anything*" disabled="true">
<option>Choose an option...</option>
<option value="1">Test</option>
<option value="2">Test 2</option>
</select>
</div>
Javascipt:
$('.container').on('change','select', function(){
$(this).nextAll('select').first().removeAttr('disabled');
});
$().nextAll()
-获取匹配元素集中每个元素的所有以下同级元素,可选地由选择器进行筛选。
.first()
将选择当前后的第一个选择,并从中删除属性disabled
。
示例:jsFiddle
相关文章:
- 元素在我的代码中不会.fadeTo.Don'I don’我不知道;s错误的JavaScript、JQuery、H
- Steam Web API:I'我不知道该如何处理这个看起来像哈希的url来生成图像
- 这个旋钮没有更新;我不知道为什么
- 我不知道为什么我的代码是错误的?又有什么错
- 我不知道我的编码有什么问题.(JavaScript)
- I'我不知道为什么我的代码没有'不起作用
- sqlite查询返回错误-can'我不知道为什么
- 我不知道此代码中的这些符号是什么意思.十进制到二进制
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 我没有'我不知道为什么我的jqGrid子网格没有'不要给我看数据
- 如何为javascript创建自定义标签?或者这是我不知道的其他事情吗;我不知道
- 我已经用javascript制作了一个幻灯片,但我不知道如何让我的照片发呆
- 我的函数不起作用,Ajax调用,JQuery,调用外部?我不知道
- 单选按钮验证:我可以验证它,但我不知道原因
- 当我没有'我不知道关键值
- 我的素数函数坏了,但我没有;我不知道为什么
- 我得到了这个错误,但是不要;我不知道如何修复它,www.example.com/undefined?1460018627
- 可以'我不知道如何使用谷歌图表API显示2个表
- 可以'我不知道李是在徘徊
- 当您不使用'我不知道身份证