7

みんな、次のコードを使用して、jQuery ( jquery-1.4.2.min )を使用してオプションを無効にしました。無効化は Firefox で発生しますが、IE では発生しません。

<SELECT NAME="SCOPE" id="SCOPE">  
 <OPTION VALUE="G"> Global
 <OPTION VALUE="D"> Dynamic  
</SELECT>


 $("#SCOPE option[value='G']").attr("disabled","disabled");
 $("#SCOPE option[value='D']").attr("selected", "selected");
4

2 に答える 2

6

私は間違っているかもしれないと思いますが、オプションではなく選択を無効にすることができるからかもしれません。Firefox は素晴らしいのに IE は最悪なので、その理由を推測できます :) その問題が発生しています。css を使用して、そのオプションのテキストをグレー表示します。

次に、jqueryで次のようにします。

$('#SCOPE').change(function(){
  if($('#SCOPE option[value="'+$(this).val()+'"]').attr('disabled') == 'disabled'){
    alert('Its disabled you cannot select this option');
  }
});

ところで。私はこれをテストしていないので、コードを再確認してください:)

于 2011-02-09T11:37:32.877 に答える
0

私の見解は他の回答とは少し異なります。

目的は、オプションを非表示にすることではなく、単に無効にすることです (UI の一貫性を保つため)。

私のシナリオ:

フォームに複数の選択があり、ユーザーが選択の1つでオプションを選択すると、他の選択はこのオプションを無効にする必要があり、その逆も同様です。ユーザーは、既に選択されているオプションと同じオプションを選択することが制限されています。通常はこのオプションを無効にしますが、IE 7 ではサポートされていません。ユーザーは、新しい選択を追加するオプションも取得します。

解決 :

ロード時:

ブラウザーが IE7 の場合、選択項目にデータを入力し、他の選択項目で既に選択されているオプションを無効にするときに、オプション ("data-ie7-disabled") にカスタム属性を追加し、無効なオプションの色を '# に変更しますcccccc' (無効なオプションの標準色)。これにより、UI はブラウザー間で同じように見えます。

変更時:

前のオプションをローカル変数に保存します (これはフォーカス時に保存されます)。

ユーザーがオプションを変更しようとしたとき

ユーザーは、他のドロップダウンで選択されていない完全な新しいオプションを選択します。次に、他の選択をループして色を変更し、他の選択で選択したオプションにカスタム属性を追加します。

ユーザーが既に選択されているオプション (色がグレーになっているオプション) を選択した場合。最初に、オプションにこのカスタム属性があるかどうかを確認します。もしそうなら > 「このオプションはすでに選択されているか、BLAH BLAH」というエラーメッセージを表示して、オプションを前のオプションに戻します。

ユーザーが既存のオプションを他のドロップダウンで選択されていない新しいオプションに変更した場合。他のすべての選択オプションを再度ループし、色とカスタム属性を削除します。

お役に立てれば。

于 2015-08-07T10:55:20.010 に答える