2009-12-21 6 views
0

J'utilise jQuery autocomplete d'ici: http://www.pengoworks.com/workshop/jquery/autocomplete.htmjQuery autocomplete, et la clé de retour pour valeur entrée

 $("#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 
} 

la touche retour LookupAction | liste de valeurs. si j'ajoute une touche, pour obtenir la clé de la valeur sélectionnée dans autocomplétion, je vais avoir quelque chose comme ceci:

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

     return false; 
} 

alors que je peux voir la clé pour entrée aux valeurs de zone de texte via les fonctions d'alerte en fonction findValue, la question est: il possible de les renvoyer d'une manière ou d'une autre? (c'est-à-dire var retVal = oSuggest.findValue())

Merci!

Répondre

1

Avez-vous essayé?

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

Veuillez noter que la notation que j'ai utilisée à la fin de la fonction est appelée "ternaire". You can find more information about it here.

EDIT: Essayez cette

Mettre cela sur la page quelque part

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

changer ensuite findValue à ce

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

Maintenant, vous pouvez consulter à l'ID choisi en se référant à $('#id_of_hidden_text_field').val();