2015-10-22 73 views
5

我在这里有两个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

你可以使用'$触发器(“变‘);'设定值时,右后(’黄金”)。? – Typoheads

+0

是的...有效的工作,谢谢@Typoheads –

回答

2

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

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

是的..工作完全按照我想要的,谢谢@Rory McCrossan –

+0

没问题,乐于帮助。 –

相关问题