2013-09-07 30 views
7

jquery 1.8.2 ve jqueryui 1.9.0 kitaplıklarını kullanıyorum.jquery otomatik tamamlama metin kutusu set değeri programatik olarak

Jquery-ui'nin otomatik tamamlama metin kutusunu içeren tablonun bir "Kayıt Düzenle" iletişim kutusu eklemeye çalışıyorum.

Ayrıca, kullanıcının listeden öğeleri seçmesini kısıtlamak için otomatik tamamlama değişiklik olayını kullanıyorum.

Sorunum: Düzenleme formumu gösterdiğimde, varolan verileri metin kutusuna ayarlıyorum, ancak kullanıcı düzenleme formundaki başka bir alana tıkladığında, hiçbir şey değiştirmeden hatayı değiştiren denetleyici değiştirildi. Combobox türü otomatik tamamlama için nasıl değer belirtileceğini gösteren birçok örnek buldum ancak metin kutusu türü için bulamadım. Lütfen bu konuda bana yardımcı olun, cevaplarınızın diğer kullanıcılar için de faydalı olacağını düşünüyorum.

$('a.edit_link').live("click", function() { 

     clearEditMaterialForm(); 

     //loading selected value 
     var valMaterialName = $(this).closest('tr').children('td.cl_material_name').text(); 

     $('#EditMaterialName').val(valMaterialName); 

    }); 

cevaplar için çok teşekkür ederim: Burada
$("#EditMaterialName").autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       url: "someurl", 
       dataType: "json", 
       data: { 
        search_string: request.term 
       }, 
       success: function (data) { 
        response($.map(data, function (item) { 
         return { 
          label: item.description, 
          value: item.description 
         } 
        })); 
       } 
      }); 
     }, 
     minLength: 2, 
     select: function (event, ui) { 

     }, 
     change: function (event, ui) { 
      if (!ui.item) { 
       $('<div class="error"><b> please select a listed value.</b><div>').insertAfter('#EditMatName'); 
       $('#EditMaterialName').val(''); 
      } 
     }, 
     open: function() { 
      $(this).removeClass('ui-corner-all').addClass('ui-corner-top'); 

     }, 
     close: function() { 
      $(this).removeClass('ui-corner-top').addClass('ui-corner-all'); 

     } 
    }); 

ve

Düzenleme Kayıt iletişim göstermeden kodudur:

burada otomatik tamamlama metin kutusu için benim kodudur.

cevap

9

belki de doğru güzel değil değil var ama işe yarıyor:

function setAutocompletCurrentValue(id, value) { 
    $(id).val(value); 
    var textToShow = $(id).find(":selected").text(); 
    $(id).parent().find("span").find("input").val(textToShow); 
} 

yardımcı olur Umut.

+0

Çok eğlenceli ve iyi çalışıyor, Gerçekten teşekkürler dostum ... – Ali

+0

Mükemmel. Harika çalışıyor. –

+0

Saçlarımı çıkarmaya çok teşekkürler, bu hala işe yarıyor. – jared

İlgili konular