2013-02-12 36 views
7

Tôi đang sử dụng plugin Bootstrap Typeahead trong ứng dụng của mình và đây là mã của tôi (đây là một ví dụ). Tôi đang tìm cách xác thực lựa chọn người dùng (về cơ bản nếu đầu vào không khớp với bất kỳ kết quả nào -> làm trống hộp trên làm mờ). Kết quả phải khớp. Tôi đã tìm kiếm khắp mọi nơi và không thể tìm thấy một thứ gì. Sự giúp đỡ của bạn sẽ được đánh giá cao.Twitter Bootstrap Lựa chọn lực lượng Typeahead

$('#search').typeahead({ 
     source: function (query, process) { 
      var states = []; 
      var map = {}; 

      var data = [ 
       { "stateCode": "CA", "stateName": "California" }, 
       { "stateCode": "AZ", "stateName": "Arizona" }, 
       { "stateCode": "NY", "stateName": "New York" }, 
       { "stateCode": "NV", "stateName": "Nevada" }, 
       { "stateCode": "OH", "stateName": "Ohio" } 
      ]; 

      $.each(data, function (i, state) { 
       map[state.stateName] = state; 
       states.push(state.stateName); 
      }); 

      process(states); 
     } 
    }); 
+0

Có thể dup: http://stackoverflow.com/questions/13743498/bootstrap-typeahead-only-allow-list-values ​​- thay vì cảnh báo, chỉ sử dụng '.val ('')' để làm trống trường nhập. – mccannf

+0

Cảm ơn bạn đã giúp đỡ, tuy nhiên điều đó dường như không làm các trick -> kiểm tra xem nó http://jsfiddle.net/Q4DBx/1/ –

Trả lời

11

Nếu bạn giải nén ra các dữ liệu, tiểu bang và bản đồ, bạn có thể sử dụng chúng trong các .blur chức năng cho tra cứu:

var data = [ 
      { "stateCode": "CA", "stateName": "California" }, 
      { "stateCode": "AZ", "stateName": "Arizona" }, 
      { "stateCode": "NY", "stateName": "New York" }, 
      { "stateCode": "NV", "stateName": "Nevada" }, 
      { "stateCode": "OH", "stateName": "Ohio" } 
     ]; 
var states = []; 
var map = {}; 

$.each(data, function (i, state) { 
    map[state.stateName] = state; 
    states.push(state.stateName); 
}); 

$('#search').typeahead({ 
    source: function (query, process) { 
     process(states); 
    } 
}).blur(function(){ 
    if(states[$(this).val()] == null) { 
     $('#search').val(''); 
    } 
}); 
+0

Vâng đó là nó. Cảm ơn, bạn đời! –

+0

rực rỡ đơn giản –

0

Các giải pháp từ mccannf hoạt động, nhưng trong trường hợp của tôi với if(parents.indexOf($(this).val()) === -1) { trên sự kiện mờ.

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