0

我正在使用 jquery 插件 jquery.chained.js 的修改版本来根据选择框的另一个值过滤选择框选项和复选框。但是,现在我需要根据之前选择框的选项 2 来过滤选择框。

我有 3 个选择框。

  1. 职员
  2. 房间
  3. 服务

和几个复选框或选择框

  • 插件

上述插件取决于将其显示为复选框或下拉菜单的偏好

如果您更改现在的方式,Staff那么ServicesAddons选项将更改为员工可以访问的任何服务。但是,我现在需要做到这一点,Services并将Addons根据Staff可以访问这些服务的Services内容以及Rooms提供这些服务的内容进行设置。

有谁能帮我修改这个已经修改过的脚本以添加对多个选择框的支持?我想尝试保持它的通用性,因为我们可能也会使用这个链接到其他元素的脚本。

总而言之,我正在寻找的是添加对房间选择框的支持,以进一步过滤服务和 AddonServices 选项。

示例代码可以在http://bit.ly/uzEDL2找到

编辑: checkboxradio() 适用于 jquery Mobile,所以不用担心这些。

4

1 回答 1

1

要使孩子选择取决于两个父母的值,请使用 classname like first\second。请注意,如果您有非常复杂的选择结构,维护这种类会变得很麻烦。因此,使用插件的远程版本可能会更容易。

取自插件文档的示例。在此示例中,柴油发动机仅适用于 BMW 3 和 5 系列轿车。这是通过使用类名series-3\sedanseries-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]、下划线[_]或破折号开头,[-]然后是数字、字母、下划线和破折号。可以从以下位置找到更好的解释:CSS 标识符的允许字符

于 2011-12-02T19:23:04.510 回答