我有一个非常简单的表单,当另一个选择字段对其进行优化时,我想隐藏选择选项。
目前我已经尝试dispay: none
在我的选项中作为内联样式,但它并没有隐藏它。
我正在使用 chrome,这需要适用于所有浏览器。任何人都可以解释一下,因为我似乎在谷歌上找不到太多东西。
请在这里查看我的问题... http://jsfiddle.net/3vPgY/5/
这里是我当前的代码......
<form>
<select id="refine">
<option class="default" value="0">Please refine...</option>
<option value="green">Green</option>
<option value="blue">Blue</option>
<option value="red">Red</option>
</select>
<select id="everything" disabled="disabled">
<option class="default" value="">Please select</option>
<option class="green" value="green-sel">Show only if Green selected</option>
<option class="green" value="green-sel">Show only if Green selected</option>
<option class="green" value="green-sel">Show only if Green selected</option>
<option class="blue" value="blue-sel">Show only if Blue selected</option>
<option class="blue" value="blue-sel">Show only if Blue selected</option>
<option class="blue" value="blue-sel">Show only if Blue selected</option>
<option class="red" value="red-sel">Show only if Red selected</option>
<option class="red" value="red-sel">Show only if Red selected</option>
<option class="red" value="red-sel">Show only if Red selected</option>
</select>
</form>
我的 jquery 脚本应该过滤第二个下拉列表...
$('#refine').change(function () {
var refine = $('option:selected', this).val().replace(/ /g, "-");
if (refine != 0) {
$('#everything').removeAttr('disabled');
$('#everything option:not(.default)').css('display', 'none');
$('#everything .' + refine).css('display', 'block');
} else {
$('#everything').attr('disabled', 'disabled');
$('#everything option:not(.default)').css('display', 'none');
}
});
如您所见,我只想隐藏选项,而不是删除。如果第一个下拉选项发生变化,我可以以某种方式将它们带回来。
任何建议都是最有帮助的——或者可能是一种解决方法。
谢谢