0

IE9の動的ドロップダウンリストに問題があります。

テーブルがあり、列の1つにコンボが入力され、行ごとに1つのコンボが入力され、これらの各コンボは次のようなHTML5.0コードで作成されます。

<select id="cboABC0" class="RetrieveList cboABC" data-index="0" data-info="3" name="cboABC">
<option selected="selected" value="N">Select</option>
<option value="P">Partial</option>
<option value="C">Complete</option>
<option value="CA">Cancelled</option>
</select>
</td>

選択したオプションに応じて、ドロップダウンリストでオプションの1つが選択されたときに何かが発生するようにしたいのですが、そのために、JQueryでRetrieveListクラスのイベントを使用するさまざまな方法を試しました。

$(".RetrieveList").live(''click'',function(event){      

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index");

var sOptionSelected = $(this).val();

alert(sOptionSelected);

// Here is where I want to do something , depending on the selected option.

}); 

「ライブクリック」では、少なくともクリックイベントが「発生」しますが、選択したものが認識されません。たとえば、何も選択されておらず、コンボを開いた場合など、最後に選択したオプションのままになります。別のオプションに移動してそのオプションをクリックすると、クリックイベントに移動しますが、$(this).val()で返される値は、選択したばかりの値ではなく、前の値です。一方、矢印キーでオプションを選択してクリックすると、idは新しい値を認識します。「クリック」の変化だけを認識し、価値は認識しないようなものです。

「バインドクリック」、「ライブ変更」、「バインド変更」を試してみましたが、これらのオプションを使用しても、クリックが「起動」されません。

繰り返しになりますが、これはすべてIE9で発生し、Mozillaでは大きな問題は発生していません。

誰かがこの問題で私を助けてくれるなら、私はそれを大いに感謝します。

前もって感謝します、

よろしく!

ブレンダ

4

2 に答える 2

2

まず、''click''ちょうど'click'. clickとにかく使用するのではなく、changeユーザーがクリックしたときだけでなく、リストが変更されるたびに起動するように使用します。click別の選択をせずにクリックしただけでも起動します(クリックしてすべてのドロップダウン項目を表示します)

それを修正すると、すべてのブラウザで動作します。

デモ

于 2012-06-16T20:58:36.757 に答える
0

試す:

    $(".RetrieveList").live('change',function(event){      

var val_info = $(this).attr("data-info"); 
var val_index = $(this).attr("data-index");

var sOptionSelected = $(this).val();

alert(sOptionSelected);

// Here is where I want to do something , depending on the selected option.

}); 
于 2012-06-16T21:00:57.640 に答える