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

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

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

上面最後一行中的$ hidden.val()會返回undefined是什麼原因?我已經驗證了selected.data [1]包含一個整數值。需要幫助理解jQuery .val()函數

編輯#1:每個評論的一些額外的背景:($隱藏的是一個隱藏的輸入域)

$.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); 
     }); 

和...

$.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()); 

編輯#2:更多細節....我試圖使用多個文本框控件(每個實現自動完成)的窗體上使用jQuery自動完成擴展。每個文本框旁邊的表單上都有一個單獨的按鈕,用於將表單提交給處理函數,該函數需要查找所選項目的值並將其保存到數據庫。我想這樣做的方式是在表單上包含一個隱藏字段來保存選定的值。

+0

你在哪裏設置$ hidden? – 2009-03-02 16:46:06

+0

我們需要知道$ hidden是指什麼才能回答這個問題 – 2009-03-02 16:50:54

回答

1

感謝Paolo Bergantino。我發現我沒有通過隱藏字段ID前面的#隱藏,所以$ hidden永遠不會正確設置。我很難調試,因爲自動完成是作爲嵌入資源在ascx控件中。一旦我確保隱藏的價值包括#它正常工作。

0

$ hidden可以是未勾選的複選框嗎?