web-dev-qa-db-ja.com

JQuery選択変更が起動しない

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

    $('#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);
};

おそらく別の場所にあるはずですが、見つけられません!

48

試してみる

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

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

または

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

更新:

2つ目は正常に機能します。それを機能させるためのセレクターの別の変更があります。

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

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

157
Dhaval Marthak

これを試して

$('body').on('change', '#multiid', function() {
    // your stuff
})

チェックしてください.on()selector

7
Anil kumar

これらのメソッドによってchnageイベントを起動できます:

最初

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

第二

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

三番

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

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

$(document).ready(function($) {
   alert('Jquery Working');
});
5
Prince Patel
$(document).on('change','#multiid',function(){
  // you desired code 
});

参照on

3
Rituraj ratan

これは私のために働く!

$('#<%= ddlstuff.ClientID %>').change(function () {
    alert('Change Happened');
     $('#<%= txtBoxToClear.ClientID %>').val('');
});
0
dsf