3

国を選択すると、選択した国オプションと同じラベルを持つ optgroup とそのコンテンツを除く、州の select タグのすべての optgroup とそのコンテンツが非表示になる国用の select タグを作成したいと考えています。例

<select name="country">
<option value="United States">United States</option>     <!-- if I select US -->
<option value="Canada">Canada</option>
<option value="Mexico">Mexico</option>
</select>

<select name="country">
<optgroup label="United States">
<option value="California">California</option>           <!-- Only these states -->
<option value="New York">New York</option>               <!-- are displayed -->
</optgroup>
<optgroup label="Canada">                                <!-- hidden-->
<option value="Ontario">Ontario</option>                 <!-- hidden-->
<option value="Quebec">Quebec</option>                   <!-- hidden-->
</optgroup>
<optgroup label="Mexico">                                <!-- hidden-->
<option value="Baja California">Baja California</option> <!-- hidden-->
<option value="Mexico Estado">Mexico Estado</option>     <!-- hidden-->
</optgroup>
</select>
4

3 に答える 3

4

これは私にとってはうまくいっているようです:

​$("select[name='country']:eq(0)"​).on("change", function() {
    $("select[name='country']:eq(1)")
        .find("optgroup,option")
        .hide()
        .filter("[label='" + this.value + "'],[label='" + this.value + "'] > *")
        .show();
});​​​​​​​​

デモ: http://jsfiddle.net/MVkXg/

于 2012-08-28T20:41:25.203 に答える
1

クロスブラウザの方法でそれを行うことはできないと思います。最良のオプションは、すべてのオプションを保存し、フィルターされたオプションで選択を再作成することだと思います

于 2012-08-28T20:36:27.113 に答える