2015-10-22 15 views
5

Tôi có hai hàm Jquery ở đây, hàm đầu tiên thực hiện tải ajax tùy thuộc vào người dùng thả xuống các tùy chọn chọn, sau đó thay đổi trường nhập dựa trên giá trị được trả về. Điều này hoạt động tốt.Jquery nghe các thay đổi trên trường đầu vào sau khi tải ajax nền

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

Sau đó, hàm thứ hai sẽ lắng nghe những thay đổi trên trường nhập được chỉ định ở trên, nên vô hiệu hóa tất cả các trường nhập trong biểu mẫu. Dường như, chức năng 'jquery on change' không phát hiện các thay đổi thông qua ajax trên trường nhập. Bất kỳ sự trợ giúp nào cũng được đánh giá cao.

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

Bạn có thể sử dụng '$ (". Alloc "). Trigger (" change ");' sau khi đặt giá trị, phải không? – Typoheads

+0

vâng ... đã hoạt động, cảm ơn @Typoheads –

Trả lời

2

Vấn đề là thay đổi theo chương trình giá trị thành phần input không tăng sự kiện. Để có được hành vi mà bạn yêu cầu, bạn có thể trigger() sự kiện theo cách thủ công:

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

vâng .. đã hoạt động chính xác như tôi muốn, cảm ơn @Rory McCrossan –

+0

Không sao, vui lòng trợ giúp. –

Các vấn đề liên quan