这里有两个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);
}
});
问题是通过编程方式更改input
元素的值不会引发事件。要获得所需的行为,您可以手动trigger()
事件:
$.get(url, function(data,status){
$(".alloc").val(data).trigger('change');
})