web-dev-qa-db-fra.com

Jquery select change pas de tir

Je dois capturer quand une boîte de sélection change, cela devrait être simple!

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

Mais cela ne fonctionne pas, je soupçonnais que le problème était que la zone de sélection n'existait pas sur le document. Elle était créée uniquement si nécessaire. Je l'ai donc créée vide en HTML, remplie avec du code à titre de test, mais cela ne fonctionnait pas non plus. .

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

c'est probablement un autre support hors de propos, mais je ne le trouve pas!

48
Pete Ravenscroft

Essayer

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

Comme votre boîte de sélection est générée à partir du code, vous devez donc utiliser délégation d'événements , à la place de $(document), vous pouvez avoir l'élément parent le plus proche.

Ou

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

Mise à jour:

La seconde fonctionne très bien, il y a un autre changement de sélecteur pour que cela fonctionne.

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

Idéalement, nous devrions utiliser $("#addbasket") car il s’agit de l’élément parent le plus proche [ comme je l’ai mentionné ci-dessus].

157
Dhaval Marthak

Essaye ça

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

veuillez vérifier .on()sélecteur

7
Anil kumar

Vous pouvez déclencher un événement de changement par les méthodes suivantes:

Première

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

Seconde

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

Troisième

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

Si cela ne fonctionne pas, vérifiez si votre jQuery fonctionne ou non:

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

référence on

3
Rituraj ratan

Cela fonctionne pour moi!

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