Tạo chức năng tự động hoàn tất nhập liệu với thư viện jQuery UI Autocomplete (Phần 2)
https://api.jqueryui.com/autocomplete/
Options: autoFocus
Nếu được đặt thành true, mục đầu tiên sẽ tự động được tập trung khi menu được hiển thị.
Options: appendTo
Options: classes
Options: delay
Độ trễ tính bằng mili giây giữa khi tổ hợp phím xảy ra và khi tìm kiếm được thực hiện. Độ trễ bằng không có ý nghĩa đối với dữ liệu cục bộ (phản hồi nhanh hơn), nhưng có thể tạo ra nhiều tải cho dữ liệu từ xa, trong khi ít phản hồi hơn.
Options: disabled
Vô hiệu hóa tự động hoàn thành nếu được đặt thành đúng.
Options: minLength
Số lượng ký tự tối thiểu mà người dùng phải nhập trước khi thực hiện tìm kiếm. Không hữu ích cho dữ liệu cục bộ chỉ với một vài mục, nhưng nên sử dụng giá trị cao hơn khi tìm kiếm một ký tự có thể khớp với vài nghìn mục.
Options: position
Xác định vị trí của menu gợi ý liên quan đến yếu tố đầu vào liên quan. Tùy chọn mặc định cho thành phần đầu vào, nhưng bạn có thể chỉ định một yếu tố khác để định vị. Bạn có thể tham khảo tiện ích Vị trí giao diện người dùng jQuery để biết thêm chi tiết về các tùy chọn khác nhau.
Options: source
Xác định dữ liệu để sử dụng, phải được chỉ định. Không phụ thuộc vào biến thể bạn sử dụng, nhãn luôn được coi là văn bản. Nếu bạn muốn nhãn được coi là html, bạn có thể sử dụng phần mở rộng html của Scott González. Tất cả các bản demo tập trung vào các biến thể khác nhau của tùy chọn nguồn - tìm kiếm một biến thể phù hợp với trường hợp sử dụng của bạn và kiểm tra mã.
Multiple types supported:
Array: An array can be used for local data. There are two supported formats:
Thuộc tính nhãn được hiển thị trong menu gợi ý. Giá trị sẽ được chèn vào phần tử đầu vào khi người dùng chọn một mục. Nếu chỉ một thuộc tính được chỉ định, nó sẽ được sử dụng cho cả hai, ví dụ: nếu bạn chỉ cung cấp các thuộc tính giá trị, giá trị cũng sẽ được sử dụng làm nhãn
String: Khi một chuỗi được sử dụng, plugin Tự động hoàn thành mong muốn chuỗi đó trỏ đến tài nguyên URL sẽ trả về dữ liệu JSON. Nó có thể trên cùng một máy chủ hoặc trên một máy chủ khác (phải hỗ trợ CORS). Plugin Autocomplete không lọc kết quả, thay vào đó, một chuỗi truy vấn được thêm vào với một trường thuật ngữ, mà tập lệnh phía máy chủ nên sử dụng để lọc kết quả.
Ví dụ: nếu tùy chọn nguồn được đặt thành "http://example.com" và người dùng nhập foo, yêu cầu GET sẽ được gửi tới http://example.com?term=foo. Dữ liệu có thể có cùng định dạng với dữ liệu cục bộ được mô tả ở trên.
Function: Biến thể thứ ba, một cuộc gọi lại, cung cấp sự linh hoạt nhất và có thể được sử dụng để kết nối bất kỳ nguồn dữ liệu nào với Tự động hoàn thành, bao gồm JSONP. Cuộc gọi lại có hai đối số:
A request
object, với một thuộc tính thuật ngữ duy nhất, tham chiếu đến giá trị hiện tại trong văn bản nhập. Ví dụ: nếu người dùng nhập "new yo" trong trường thành phố, thuật ngữ Tự động hoàn thành sẽ bằng "new yo".
A response
callback, mà mong đợi một đối số duy nhất: dữ liệu để đề xuất cho người dùng. Dữ liệu này phải được lọc dựa trên thuật ngữ được cung cấp và có thể ở bất kỳ định dạng nào được mô tả ở trên đối với dữ liệu cục bộ đơn giản. Điều quan trọng khi cung cấp một cuộc gọi lại nguồn tùy chỉnh để xử lý lỗi trong khi yêu cầu. Bạn phải luôn gọi lại cuộc gọi lại ngay cả khi bạn gặp lỗi. Điều này đảm bảo rằng widget luôn có trạng thái chính xác.
Khi lọc dữ liệu cục bộ, bạn có thể sử dụng hàm $ .ui.autocomplete.escapeRegex tích hợp. Nó sẽ lấy một đối số chuỗi đơn và thoát tất cả các ký tự regex, làm cho kết quả an toàn để chuyển sang RegExp () mới.
Methods: close()
Closes the Autocomplete menu. Useful in combination with the search
method, to close the open menu.
Methods: destroy()
Loại bỏ hoàn toàn chức năng tự động hoàn thành. Điều này sẽ đưa phần tử trở lại trạng thái trước khi khởi tạo.
Methods: disable()
Methods: enable()
Methods: instance()
Lấy đối tượng cá thể tự động hoàn thành. Nếu phần tử không có phiên bản liên quan, không xác định được trả về.
Không giống như các phương thức widget khác, instance () an toàn để gọi bất kỳ phần tử nào sau khi plugin tự động hoàn tất đã được tải.
Methods: option( optionName )
Nhận giá trị hiện được liên kết với tùy chọn Tên được chỉ định.
Lưu ý: Đối với các tùy chọn có các đối tượng là giá trị của chúng, bạn có thể nhận giá trị của một khóa cụ thể bằng cách sử dụng ký hiệu dấu chấm. Ví dụ: "foo.bar" sẽ nhận giá trị của thuộc tính thanh trên tùy chọn foo.
Methods: option()
Nhận một đối tượng chứa các cặp khóa / giá trị đại diện cho hàm băm tùy chọn tự động hoàn thành hiện tại.
Methods: option( optionName, value )
Đặt giá trị của tùy chọn tự động hoàn thành được liên kết với tùy chọn Tên được chỉ định.
Lưu ý: Đối với các tùy chọn có các đối tượng là giá trị của chúng, bạn có thể đặt giá trị của chỉ một thuộc tính bằng cách sử dụng ký hiệu dấu chấm cho tùy chọn Tên. Ví dụ: "foo.bar" sẽ chỉ cập nhật thuộc tính thanh của tùy chọn foo.
Methods: option( options )
Sets one or more options for the autocomplete.
Methods: search( [value ] )
Kích hoạt một sự kiện tìm kiếm và gọi nguồn dữ liệu nếu sự kiện không bị hủy. Có thể được sử dụng bởi một nút giống như hộp chọn để mở các đề xuất khi nhấp vào. Khi được gọi không có tham số, giá trị của đầu vào hiện tại được sử dụng. Có thể được gọi với một chuỗi rỗng và minLpm: 0 để hiển thị tất cả các mục.
Methods: widget()
Trả về một đối tượng jQuery chứa thành phần menu. Mặc dù các mục menu liên tục được tạo và hủy, phần tử menu được tạo trong quá trình khởi tạo và liên tục được sử dụng lại.
Extension Points:
Tiện ích tự động hoàn thành được xây dựng cùng với nhà máy phụ tùng và có thể được mở rộng. Khi mở rộng các widget, bạn có khả năng ghi đè hoặc thêm vào hành vi của các phương thức hiện có. Các phương thức sau được cung cấp dưới dạng các điểm mở rộng có độ ổn định API giống như các phương thức plugin được liệt kê ở trên. Để biết thêm thông tin về tiện ích mở rộng tiện ích, hãy xem Mở rộng tiện ích với Nhà máy tiện ích.
Extension Points: _renderItem( ul, item )
Phương pháp kiểm soát việc tạo từng tùy chọn trong menu của widget. Phương thức phải tạo một phần tử mới, nối nó vào menu và trả lại nó. Xem tài liệu Menu để biết thêm chi tiết về đánh dấu
Extension Points: _renderMenu( ul, items )
Phương pháp kiểm soát việc xây dựng menu của widget. Phương thức này được thông qua một trống và một mảng các mục khớp với thuật ngữ người dùng đã nhập. Việc tạo các phần tử riêng lẻ phải được ủy quyền cho _renderItemData (), lần lượt ủy nhiệm cho điểm mở rộng _renderItem ().
Extension Points: _resizeMenu()
Phương pháp chịu trách nhiệm định cỡ menu trước khi nó được hiển thị. Phần tử menu có sẵn tại this.menu.element
Events: change( event, ui )
Kích hoạt khi trường bị mờ, nếu giá trị đã thay đổi.
Events: close( event, ui )
Triggered when the menu is hidden. Not every close event will be accompanied by a change event.
Kích hoạt khi menu bị ẩn. Không phải mọi sự kiện gần gũi sẽ được đi kèm với một sự kiện thay đổi.
Lưu ý: Đối tượng ui trống nhưng được bao gồm để thống nhất với các sự kiện khác.
Bind an event listener to the autocompleteclose event:
Events: create( event, ui )
Lưu ý: Đối tượng ui trống nhưng được bao gồm để thống nhất với các sự kiện khác.
Bind an event listener to the autocompletecreate event:
Events: create( event, ui )
Kích hoạt khi tự động hoàn thành được tạo.
Lưu ý: Đối tượng ui trống nhưng được bao gồm để thống nhất với các sự kiện khác.
Bind an event listener to the autocompletecreate event:
Events: focus( event, ui )
Kích hoạt khi tiêu điểm được chuyển đến một mục (không chọn). Hành động mặc định là thay thế giá trị của trường văn bản bằng giá trị của mục được tập trung, mặc dù chỉ khi sự kiện được kích hoạt bởi tương tác bàn phím. Hủy bỏ sự kiện này sẽ ngăn giá trị được cập nhật, nhưng không ngăn mục menu bị tập trung.
Bind an event listener to the autocompletefocus event:
Events: open( event, ui )
Kích hoạt khi menu gợi ý được mở hoặc cập nhật.
Initialize the autocomplete with the open callback specified:
Bind an event listener to the autocompleteopen event:
Events: response( event, ui )
Kích hoạt sau khi tìm kiếm hoàn thành, trước khi menu được hiển thị. Hữu ích cho thao tác cục bộ của dữ liệu đề xuất, trong đó không yêu cầu gọi lại tùy chọn nguồn tùy chỉnh. Sự kiện này luôn được kích hoạt khi tìm kiếm hoàn tất, ngay cả khi menu sẽ không được hiển thị vì không có kết quả hoặc Tự động hoàn tất bị tắt.
Initialize the autocomplete with the response callback specified:
Bind an event listener to the autocompleteresponse event:
Events: search( event, ui )
Kích hoạt trước khi tìm kiếm được thực hiện, sau khi độ dài và độ trễ được đáp ứng. Nếu hủy bỏ, sau đó không có yêu cầu sẽ được bắt đầu và không có mục nào được đề xuất.
Initialize the autocomplete with the search callback specified:
Bind an event listener to the autocompletesearch event:
Events: select( event, ui )
Kích hoạt khi một mục được chọn từ menu. Hành động mặc định là thay thế giá trị của trường văn bản bằng giá trị của mục được chọn. Hủy bỏ sự kiện này ngăn giá trị được cập nhật, nhưng không ngăn menu đóng.
Initialize the autocomplete with the select callback specified:
Bind an event listener to the autocompleteselect event:
Ví dụ 1:
Ví dụ 2:
index.html
search.php
Last updated
Was this helpful?