我正在使用jquery插件jquery.chained.js的修改版本来筛选出基于选择框的另一个值的选择框选项和复选框。但是,现在我需要根据前面选择框中的2个选项过滤选择框。
我有3个选择框。
和几个复选框或选择
框上述插件依赖于首选项将其显示为复选框或下拉列表
如果您更改Staff
,那么现在就是这样,那么Services
和Addons
选项将更改为员工可以访问的服务。但是,我现在需要进行设置,以便Services
和Addons
根据Staff
对Services
的访问权限以及Rooms
提供这些服务的内容进行设置。
是否有人能够帮我修改此已修改的脚本以添加对多个选择框的支持?我想尝试保持它的通用性,因为我们可能使用这个链接来编写其他元素的脚本。
总结我要找的是添加对Rooms select框的支持,以进一步筛选Services和AddonServices选项。
可以找到示例代码http://bit.ly/uzEDL2
编辑:checkboxradio()适用于jquery Mobile,所以不要担心这些。
答案 0 :(得分:1)
要使子选择依赖于两个父母的值,请使用类似first\second
的类名。请注意,如果你有非常复杂的选择结构,那么保持这种类就会变得很麻烦。在那个原因中,使用插件的远程版本可能更容易。
取自plugin documentation的示例。在这个例子中,柴油发动机仅适用于BMW 3和5系列轿车。这是通过使用类名series-3\sedan
和series-5\sedan
来实现的。
<select id="series">
<option value="">--</option>
<option value="series-3" class="bmw">3 series</option>
<option value="series-5" class="bmw">5 series</option>
<option value="series-6" class="bmw">6 series</option>
<option value="a3" class="audi">A3</option>
<option value="a4" class="audi">A4</option>
<option value="a5" class="audi">A5</option>
</select>
<select id="model">
<option value="">--</option>
<option value="coupe" class="series-3 series-6 a5">Coupe</option>
<option value="cabrio" class="series-3 series-6 a3 a5">Cabrio</option>
<option value="sedan" class="series-3 series-5 a3 a4">Sedan</option>
<option value="sportback" class="a3 a5">Sportback</option>
</select>
<select id="engine">
<option value="">--</option>
<option value="25-petrol" class="series-3 a3 a4">2.5 petrol</option>
<option value="30-petrol" class="series-3 series-5 series-6 a3 a4 a5">3.0 petrol</option>
<option value="30-diesel" class="series-3\sedan series-5\sedan a5">3.0 diesel</option>
</select>
$("#model").chained("#series");
$("#engine").chained("#series, #model");
请注意,您的HTML无效。单号不是有效的类名。类名必须以下划线字母[a–z]
,下划线[_]
或短划线[-]
开头,然后是数字,字母,下划线和短划线。可以从Allowed characters for CSS identifiers找到更好的解释。