Подтвердить что ты не робот

JQuery выбрать изменение не стрелять

Мне нужно захватить, когда изменяется окно выбора, должно быть просто!

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

Но это не работает, я подозревал, что проблема заключается в том, что окно выбора не существует на готовом документе, он создается только при необходимости, поэтому я создал его пустым в HTML, заполнил его кодом как тест, но это не так, t тоже.

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);
};

это, вероятно, другая скобка неуместна, но я не могу ее найти!

4b9b3361

Ответ 1

Попробуйте

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

Поскольку ваш код выбора генерируется из кода, вы должны использовать делегирование событий, где вместо $(document) вы можете иметь самый близкий родительский элемент.

Или

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

Update:

Второй работает отлично, есть другое изменение селектора, чтобы заставить его работать.

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

В идеале мы должны использовать $("#addbasket") как ближайший родительский элемент [Как я уже упомянул выше].

Ответ 2

Попробуйте это

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

проверьте .on() селектор

Ответ 3

$(document).on('change','#multiid',function(){
  // you desired code 
});

ссылка on

Ответ 4

Вы можете запустить событие 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

Это работает для меня!

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