CẬP NHẬT: Cuối cùng tôi đã tìm ra điều này, mã bên dưới sẽ thực hiện thủ thuật. Vì một số lý do, gọi lại change
không hoạt động nhưng số gọi lại close
& select
. Sử dụng select
tốt hơn, vì close
cũng sẽ được gọi nếu trường mất tiêu điểm.
$(function() {
$("#searchField").autocomplete({
source: "values.json",
select: function(event, ui) {
$("#searchForm").submit(); }
});
});
KHÁC UPDATE: Ok, cũng có một vấn đề với select
gọi lại, mà là theo mặc định (trong đoạn code trên) nếu bạn đi qua autocomplete thả xuống với bàn phím và chọn với nhập khóa, đầu vào được thay đổi trước khi biểu mẫu được gửi. Tuy nhiên, nếu bạn chọn nó bằng chuột, biểu mẫu được gửi ngay trước khi đầu vào được thay đổi, do đó giá trị được gửi chỉ là những gì người dùng đã nhập (không phải những gì cô đã chọn từ menu thả xuống tự động hoàn tất). Các woraround điều đó dường như làm việc là:
$("#searchField").autocomplete({
source: "values.json",
minLength: 2,
select: function(event, ui) {
$("#searchField").val(ui.item.label);
$("#searchForm").submit(); }
});
ngắn gọn: xác định hàm gọi lại và gửi biểu mẫu trong hàm gọi lại với javascript. Không thực sự biết làm thế nào để làm điều này trong mã. – Natrium