2013-05-23 15 views
5

Tôi đang sử dụng kiểu gõ bootstrap với jQuery ajax mà chúng tôi sẽ gọi FILTER # 1. Trong trường hợp của tôi, tìm kiếm ajax như "tank lớn" hoặc "greattank" đều tạo ra kết quả ajax "Great Tank" nhưng typeahead là 2 đoán kết quả của tôi và lọc kép (chúng ta sẽ gọi FILTER # 2) kết quả thứ hai vì không gian. Nó cũng có thể là kết quả ajax của tôi trở lại có thể hoàn toàn khác với những gì đã được gõ. Tôi cần typeahead để tin tưởng rằng các kết quả được cung cấp là hợp lệ và hiển thị chúng bất kể một kết hợp văn bản chữ thường chính xác.Làm cách nào để ngăn chặn lỗi đánh máy khởi động từ kết quả không phù hợp với lọc kép từ cuộc gọi ajax

Tôi muốn có các hành vi sau đây:

  1. Nếu có một từ tương ứng trong các kết quả nổi bật nó
  2. Nếu có một từ không phù hợp hiển thị nó không được đánh dấu, nhưng để lại nó trong danh sách kết quả so với lọc danh sách.

(1) hoạt động OOTB, nhưng (2) là tính năng bị thiếu mà tôi đang tìm kiếm. Nếu tôi không thể có (1) và (2) tôi sẽ ổn nếu bỏ (1).

Dưới đây là một ví dụ fiddle: http://jsfiddle.net/PE9mN/

 $("#title2").typeahead({ 
     source: function(request, response) { 
       var mockResults2 = ["Great Tank War", 
            "Great Train Robbery", 
            "other random result my server produced"]; 
      response(mockResults2); 
      // I expect this to display both items regardless of $("#title2").val() 
      // In my case, the server was smart enough to realize that 
      // "greattank" may match "great tank" 
      // and it even added a 3rd value that I want to display. 
      } 
      }); 

Cảm ơn.

Trả lời

11

Nếu bạn thêm các tùy chọn sau đây để typeahead:

matcher: function(item) { 
     return true; 
    } 

Sau đó, không có "thứ hai" lọc sẽ được áp dụng.

+0

Bạn đóng đinh nó. Tôi muốn cung cấp cho upvotes nhiều hơn nếu tôi có thể. Cảm ơn!! – JStark

+0

Tôi đã tìm thấy giải pháp này một cách may mắn. Cảm ơn – Bujji

0

bạn có thể làm điều này lúc khởi tạo như sau

//Typeahead autocomplete for address 
    $('input.typeahead').typeahead({ 
     ajax: { 
      ..... 
     }, 
     matcher: function() { return true; } 
    }); 
Các vấn đề liên quan