別の選択フィールドで絞り込むときに選択オプションを非表示にしたい非常に単純なフォームがあります。
現在、オプションでインライン スタイルを試しdispay: none
ましたが、非表示にはなりません。
私はクロムを使用していますが、これはすべてのブラウザーで機能する必要があります。グーグルであまり見つけられないように見えるので、誰かが光を当てることができますか。
ここで私の問題を見てください... 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>
そして、2番目のドロップダウンをフィルタリングするためのサポートである私の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');
}
});
ご覧のとおり、オプションを非表示にしたいだけで、削除したくありません。これは、最初のドロップダウンの選択が変更された場合に、どうにか元に戻すことができるようにするためです。
どんなアドバイスも最も役に立ちます-またはおそらく回避策です。
ありがとう