68

選択ボックスが変更されたときにキャプチャする必要があります。簡単にする必要があります!

    $('#multiid').change(function(){
    alert('Change Happened');
});

しかし、それは機能しません。問題は、ドキュメントに選択ボックスが存在せず、必要な場合にのみ作成されることであると思われるため、HTMLで空のボックスを作成し、テストとしてコードを入力しましたが、それも機能しませんでした.

function buildmulti(id,name,price) {
    // build action items for action bar
    var optlist = $('<select></select>').attr('id', 'multiid').attr('name', 'multiid');
    optlist.append('<option value="0">Select Size</option>');
    $.each(option, function(index, val) {
        if(val.prodID *1  == id * 1) {
            v = val.ID;
            fprice = price * 1 + val.pricechange * 1;
            t = name + ' - ' + val.variation +  ' - ' + currency + (fprice).toFixed(2);
            optlist.append('<option value="' + v + '">' + t + '</option>');
        }
    })
    $('#addbasket').append(optlist);
};

おそらく別のブラケットが場違いなのですが、見つかりません!

4

7 に答える 7

193

試す

 $(document).on('change','#multiid',function(){
    alert('Change Happened');
});

選択ボックスはコードから生成されるため、イベント委任を使用する必要があります。代わりに、$(document)最も近い親要素を使用できます。

または

$(document.body).on('change','#multiid',function(){
    alert('Change Happened');
});

アップデート:

2 つ目は問題なく動作します。それを機能させるために、セレクターをもう 1 つ変更します。

$('#addbasket').on('change','#multiid',function(){
    alert('Change Happened');
});

理想的には$("#addbasket")、それが最も近い親要素であるため、使用する必要があります[上で述べたように]。

于 2013-10-05T05:04:41.467 に答える
10

次の方法で chnage イベントを発生させることができます。

初め

$('#selectid').change(function () {
    alert('This works');
}); 

2番

$(document).on('change', '#selectid', function() {
    alert('This Works');
});

三番

$(document.body).on('change','#selectid',function(){
    alert('This Works');
});

このメソッドが機能しない場合は、jQuery が機能しているかどうかを確認してください。

$(document).ready(function($) {
   alert('Jquery Working');
});
于 2017-01-04T06:22:45.413 に答える
1

これは私のために働く!

$('#<%= ddlstuff.ClientID %>').change(function () {
    alert('Change Happened');
     $('#<%= txtBoxToClear.ClientID %>').val('');
});
于 2016-04-17T05:14:22.787 に答える