私のテイクは他の回答と少し違っています。
目的はオプションを非表示にすることではなく、無効にすることです(UIの一貫性を保つため)。
私のシナリオ:
私は、フォーム内に複数の選択があり、ユーザーは選択の一つでオプションを選択したときに、他の選択が、その逆は、このオプションを無効にしなければなりません。ユーザーは既に選択されているオプションと同じオプションを選択することができません。私たちは通常、このオプションを無効にしていますが、IE 7ではサポートしていません。ユーザーは、新しい選択肢を追加するオプションも取得します。
ソリューション:ロードオン
:
選択を移入し、他の選択で、すでに選択したオプションを無効にしている間、ブラウザはその後、IE7であれば、私はオプション(「DATA-にカスタム属性を追加してい無効化されたオプションの色を「#cccccc」(これは無効なオプションの標準色です)に変更します。これにより、ブラウザ間でUIが同じに見えるようになります。変更時に
:
私はローカル変数で前のオプションを(これは焦点に保存されている)を保存。
ユーザーが
ユーザーが他のドロップダウンリストで選択されていない完全な新しいオプションを選択したオプションを変更しようとします。次に、他の選択をループして色を変更し、他の選択時にこの選択されたオプションにカスタム属性を追加します。
ユーザーが既に選択されているオプションを選択した場合(色がグレー表示されているオプション)。私はオプションが最初にこのカスタム属性を持っているかどうかをチェックします。それが>私は単に "このオプションは既に選択されているかBLAH BLAH"と言うエラーメッセージで前のオプションに戻します。
ユーザーが既存のオプションを他のドロップダウンでは選択されていない新しいオプションに変更したとき。他のすべての選択オプションをループして、その上の色とカスタム属性も削除します。
これが役に立ちます。
私はよく覚えていれば、IEは 'option'タグで無効になっていると認識しません。 –