2015-10-22 7 views
5

ここでは2つのJquery関数があります。最初のオプションはドロップダウン・オプションの選択に応じてajaxロードを実行し、返された値に基づいて入力フィールドを変更します。これは正常に動作します。Jqueryはバックグラウンドajaxロード後の入力フィールドの変更をリッスンします

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

そして第二の機能は、上記指定された入力フィールドに変更を聞く必要があり、入力フィールドの値が0である場合、それはフォーム内のすべての入力フィールドを無効にする必要があります。それは、 'jquery on change'関数は入力フィールドのajaxによる変更を検出しないようです。どんな助けも高く評価されます。

//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

をあなたは '$を使用することができ、トリガー(「変更『); '値を設定した後、右(』 ALLOC。」)。? – Typoheads

+0

はい...それは働いた、ありがとう@Typoheads –

答えて

2

問題は、プログラムinput要素の値を変更すると、イベントを発生させないということです。必要な動作を取得するには、手動でイベントをtrigger()ことができます。

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

はい..私が欲しかった、正確に働いた@ Rory McCrossan –

+0

問題ない、喜んで助けてください。 –