2009-12-21 44 views
0

返回鍵我使用jQuery自動完成從這裏:http://www.pengoworks.com/workshop/jquery/autocomplete.htmjQuery的自動完成,並進入價值

 $("#TestTextbox").autocomplete(
       '<%= Url.Action("LookupAction") %>', 
       { 
        delay:10, 
        minChars:1, 
        matchSubset:1, 
        cacheLength:0, 
        onItemSelect:selectItem, 
        onFindValue:findValue, 
        formatItem:formatItem, 
        autoFill:false 
       } 
      ); 

function findValue(li) 
{ 
     if(li == null)  
      return alert("No match!"); 

     if(!!li.extra) 
      var sValue = li.extra[0]; 
     else 
      var sValue = li.selectValue; 

     alert(sValue); 
} 

function selectItem(li) 
{ 
     findValue(li); 
} 
function formatItem(row) 
{ 
     return row[0]; //value 
} 

的LookupAction返回鍵|值列表。 如果我添加一些按鈕,以獲取在autocompleter選擇價值的關鍵,我會是這樣的:

function lookupAjax() 
{ 
     var oSuggest = $("#TestTextbox")[0].autocompleter; 
     oSuggest.findValue(); 

     return false; 
} 

,而我可以看到通過警報功能findValue功能進入到文本框的值鍵,問題是:有可能以某種方式從那裏返回它們? (即var retVal = oSuggest.findValue())

謝謝!

回答

1

你試過嗎?

function findValue(li) 
{ 
     if(li === null){   
      alert('No match found!'); 
      return false; 
     } 
     return (!!li.extra) ? li.extra[0] : li.selectValue; 
} 

請注意,我在函數結尾處使用的符號稱爲「三元」。 You can find more information about it here.

編輯:請嘗試參照$('#id_of_hidden_text_field').val();這個

將這個頁面上的某個地方

<input type="hidden" id="id_of_hidden_text_field" /> 

然後換findValue這個

function findValue(li) 
{ 
     if(li === null){   
      alert('No match found!'); 
     } 
     $('#id_of_hidden_text_field').val((!!li.extra) ? li.extra[0] : li.selectValue); 
} 

現在,你可以參考所選擇的ID