在后台ajax加载后,Jquery监听输入字段的更改

Jam*_*iah 5 javascript php ajax jquery

我这里有两个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);
    })
});
Run Code Online (Sandbox Code Playgroud)

然后第二个函数应该监听上面指定的输入字段的变化,如果输入字段中的值是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);
    }
});
Run Code Online (Sandbox Code Playgroud)

Ror*_*san 2

问题在于,以编程方式更改input元素值不会引发事件。要获得您需要的行为,您可以trigger()手动事件:

$.get(url, function(data,status){
    $(".alloc").val(data).trigger('change');
})
Run Code Online (Sandbox Code Playgroud)