2015-10-22 16 views
5

Ho due funzioni Jquery qui, la prima esegue un carico Ajax in base alle opzioni di selezione a discesa degli utenti, quindi modifica un campo di input in base al valore restituito. Funziona beneJquery ascolta le modifiche sul campo di input dopo un caricamento Ajax di fondo

//perform a background ajax load and get the allocation available if any 
$("#ministry").change(function(){ 
    var ministry=$("#ministry").val(); 
    var url="/VoteBook/ministry.php?mini="+ministry; 
    $.get(url, function(data,status){ 
     $(".alloc").val(data); 
    }) 
}); 

Poi la seconda funzione dovrebbe ascoltare cambiamenti sul campo di inserimento sopra specificato, e se il valore nel campo di immissione è 0, esso deve disabilitare tutti i campi di input nella forma. Sembra che la funzione 'jquery on change' non rilevi le modifiche tramite ajax sul campo di input. Qualsiasi aiuto è molto apprezzato.

//disable all inputs on allocation field change 

$(".alloc").change(function(){ 
    var allocation=$(".alloc").val(); 
    if(allocation==0){ 
     $("#add_vote_form :input").attr('disabled', true); 
    } 
}); 
+0

si potrebbe usare '$ grilletto ("cambiamento ");' dopo aver impostato il valore, a destra (" alloc.").? – Typoheads

+0

sì ... ha funzionato, grazie @Typoheads –

risposta

2

Il problema è che programmazione modifica di un valore input elementi non genera un evento. Per ottenere il comportamento desiderato, è possibile trigger() l'evento manualmente:

$.get(url, function(data,status){ 
    $(".alloc").val(data).trigger('change'); 
}) 
+0

sì .. che ha funzionato esattamente come volevo, grazie @Rory McCrossan –

+0

Nessun problema, felice di aiutare. –

Problemi correlati