2010-06-16 24 views
5

Tôi đang sử dụng jQuery UI Autocomplete 1.8.1 với Jquery 1.4.2 và tôi gặp sự cố này.Tự động hoàn thành giao diện người dùng JQuery, giá trị sau khi chọn (bằng chuột) khác với (bằng các phím mũi tên)

Lúc đầu, tôi không thể ép buộc giá trị của trường nhập Tự động điền, đây không phải là vấn đề lớn.

Nhưng tôi có vấn đề này với nó:

tôi không hành động tương tự khi người dùng select một lựa chọn sử dụng chuột để sử dụng phím mũi tên. Khi sử dụng tất cả mọi thứ bàn phím là tốt và giá trị xuất hiện sau khi chọn trong hộp văn bản đầu vào, nhưng khi sử dụng chuột nó dính với giá trị cũ (đã nhập) không phải là giá trị được chọn.

Làm cách nào để kiểm soát giá trị này (giá trị hộp văn bản sau khi chọn)? và tại sao có những hành vi khác nhau?

P.S: thay đổi giá trị của hộp nhập bên trong hàm select là vô ích vì không thể thực hiện được!

Trả lời

0

Tôi không thể giải quyết nó theo cách hảo, Vì vậy, tôi đã quản lý để ẩn các lĩnh vực đầu vào tìm kiếm trên select và hiển thị khác tùy div được ẩn trên nhấn trọng tâm truyền cho jQuery UI tìm kiếm input nộp một lần nữa.

+0

Tôi biết điều này là cũ, nhưng tôi có một vấn đề tương tự. quan tâm để chia sẻ một jsfiddle? – MatteS

2

Tôi gặp vấn đề tương tự với vấn đề này.

Khi sử dụng bàn phím, tiêu điểm từ hộp văn bản bị mất, nhưng khi nhấp vào tiêu điểm sẽ quay trở lại hộp văn bản.

Có thể bạn có điều gì đó đang xảy ra ở trọng tâm của trường nhập đang được kích hoạt lại?

1

Các sollution là dừng sự kiện bởi preventDefault() bên trong autocomplete tập trung callback

2

Bạn có thể làm một cái gì đó như thế này:

$('#input').autocomplete({ 
    source: items, 
    focus: function(event, ui) { var text = ui.item.value; 
    $('#input').val(text); 
    return false; 
    } 
}); 

Di mục với chuột, sẽ điền vào hộp văn bản với giá trị hiện tại và khi bạn nhấp vào giá trị đó sẽ được hiển thị trên hộp văn bản

3

hoặc bạn có thể thêm giá trị đó vào một số

select: function(event, ui) { 
    $('#input').val(ui.item.value); 
} 
Các vấn đề liên quan