2009-03-02 36 views
1
alert("data going into $hidden: " + selected.data[1]); 

hidden.val(selected.data[1]); 

alert("data now in $hidden: " + $hidden.val()); 

Yukarıdaki son satırdaki $ hidden.val() öğesinin tanımsız olarak dönmesinin bir nedeni ne olurdu? Selected.data [1] 'nın bir tamsayı değeri içerdiğini doğruladım.jQuery .val() işlevinin anlaşılması konusunda yardıma mı ihtiyacınız var?

Düzenleme # 1: Yorumlar başı bazı ek bağlam:

$.fn.extend({ 
    autocomplete: function(urlOrData, hidden, options) { 
     var isUrl = typeof urlOrData == "string"; 
     var $hidden = $(hidden); 
     options = $.extend({}, $.Autocompleter.defaults, { 
      url: isUrl ? urlOrData : null, 
      data: isUrl ? null : urlOrData, 
      delay: isUrl ? $.Autocompleter.defaults.delay : 10, 
      max: options && !options.scroll ? 10 : 150 
     }, options); 

     // if highlight is set to false, replace it with a do-nothing function 
     options.highlight = options.highlight || function(value) { return value; }; 

     // if the formatMatch option is not specified, then use formatItem for backwards compatibility 
     options.formatMatch = options.formatMatch || options.formatItem; 

     return this.each(function() { 
      new $.Autocompleter(this, options, $hidden); 
     }); 

ve ...

$.Autocompleter = function(input, options, $hidden) { 
     //... 

     function selectCurrent() { 
      var selected = select.selected(); 
      if (!selected) 
       return false; 

      var v = selected.result; 
      previousValue = v; 

      if (options.multiple) { 
       var words = trimWords($input.val()); 
       if (words.length > 1) { 
        v = words.slice(0, words.length - 1).join(options.multipleSeparator) + options.multipleSeparator + v; 
       } 
       v += options.multipleSeparator; 
      } 


      alert("data going into $hidden: " + selected.data[1]); 

      $hidden.val(selected.data[1]); 

      alert("data now in $hidden: " + $hidden.val()); 

Düzenleme 2. ($ gizlenmiş gizli bir giriş alanıdır): Daha details .... JQuery otomatik tamamlama uzantısını, birden çok metin kutusu denetimli bir formda kullanmaya çalışıyorum (her biri otomatik tamamlamayı gerçekleştirir). Her metin kutusunun yanında, seçilen öğenin değerini bulmak ve db'ye kaydetmek için gereken bir işleyici işlevine formu gönderen ayrı bir düğme vardır. Bunun hakkında düşündüğüm yol, seçilen değeri saklamak için formda gizli bir alan eklemekti.

+0

Nerede $ gizli ayarlarsınız? –

+0

$ Gizli bu soruya cevap vermek için tam olarak ne atıfta bulunduğunu bilmemiz gerekir –

+0

@matt b: Sorduğun "$" yi düzenlediğinize inanıyorum. Bu amaç ya da tesadüfen miydi? – Tomalak

cevap

1

Teşekkürler Paolo Bergantino. Gizli alan kimliğinin önündeki # ile gizlenmiş olan ilk yayını geçmediğimi keşfettim, bu yüzden $ gizli hiçbir zaman düzgün ayarlanmadı. Otomatik tamamlama, gömülü bir kaynak olarak bir ascx denetiminin içinde olduğu için hata ayıklamak benim için zordu. Bir keresinde gizli olanın değerini içermesini sağladım.

0

$ Gizli, kontrol edilmeyen bir onay kutusu olabilir mi?

+0

$ gizli bir giriş alanıdır –

İlgili konular