2016-04-14 22 views
0

Kullanıcı doğru değer eklediğinde ve giriş alanından çıktığında giriş alanını otomatik olarak doldurmak istiyorum. Bunun bir örneği https://www.redbus.in/ Veri isteğini göndermek için url dizesi kullanıyorum ve sonuç alındıktan sonra. Kullanıcı alanın dışına çıksa bile veri talebini ve sonuçlarını almaya devam etmek isterim? Daha sonra sonuçların listenin ilk değeri seçilmelidir. YARDIM İÇİN TEŞEKKÜR EDERİZ!jQuery Focusout çözümü ile Otomatik Tamamlama

Benim kodudur:

jQuery(document).ready(function(){ 
    jQuery("#econt_offices_town").autocomplete({ 
     minLength: 2, 
     autoFocus: true, 
     source: function(request, response) { 
      jQuery.ajax({ 
       url: ajaxurl, 
       dataType: "json", 
       data: { 
        action:'handle_ajax', 
        city: request.term 
       }, 
       success: function(data) { 
        response(jQuery.map(data, function(item) { 
            return { 
             label:  item.label, 
             value:  item.value, 
             city_id: item.id, 
             post_code: item.post_code   
            }; 
          })); 
       }, //end of success 
      }); //end of ajax 
     }, //end of source 
     select: function(event, ui) { 
      var city_id = ui.item.city_id; 
      var post_code = ui.item.post_code; 
      jQuery('#econt_offices_postcode').val(post_code); 
      jQuery('#office_locator').show(); //show office locator button after the city is selected 
      jQuery('#econt_offices_postcode, label[for="econt_offices_postcode"], #econt_offices, label[for="econt_offices"]').show(); 
      jQuery.ajax({ 
       url: ajaxurl, 
       dataType: "json", 
       data: { 
        action:'handle_ajax', 
        office_city_id: city_id, 
        delivery_type: 'to_office' 
       }, 
       success: function(data) { 
        jQuery('#econt_offices').empty() 
        jQuery.each(data, function(key, value) { 
         jQuery('#econt_offices').append(jQuery("<option/>", { 
           value: value.id, 
           text: value.value + ' [о.к.:' + value.id + ']' 
         })); 
        }); 
        calculate_loading(); //calculate loading cost for shipping to office 
       } //end of success 
      }); //end of ajax 
     }, //end of select 
    }); //end of #econt_offices_town .autocomplete 
+0

Sadece bir yan not "Seç" "kaynak" arasındaki bu kodu koymak ama bu sınıf için iyi bir durum gibi görünüyor: [= 'econt_offices_postcode' için], # ('# econt_offices_postcode, etiket 'jQuery econt_offices, label [for = "econt_offices"] '), show(); 'jQuery ('. postcodethings ') gibi. show();' –

cevap

0

deneyin bazı yaratıcı kullanımı ile bazı ek etkinlik yönetimi ekledi. Sana birinin dışarı sekmelerinizde YA başka bir yere tıkladığında bir değer seçmek istiyorum anlıyorsanız (odak kaybetti)

$("#econt_offices_town").on('keydown focusout', function(event) { 
    if (event.keyCode != $.ui.keyCode.TAB && !(event.type == "focusout")) return; 

    event.keyCode = $.ui.keyCode.DOWN; 
    event.type = "keydown";//change the event from focusout 
    $(this).trigger(event); 

    event.keyCode = $.ui.keyCode.ENTER; 
    $(this).trigger(event); 
}); 
0

buldum. Listede sadece bir değer varsa, otomatik olarak nasıl seçilir. Ben

response: function(event,ui) { 
      if (ui.content.length == 1) { 
       ui.item = ui.content[0]; 
       jQuery("#econt_offices_town").data('ui-autocomplete')._trigger('select', 'autocompleteselect', ui); 
       jQuery("#econt_offices_town").autocomplete('close'); 
      } 
     }, 
İlgili konular