2010-10-11 9 views
1

Je l'utilise actuellement pour une seule boîte de saisie semi-automatique (id = "drug"), et cela fonctionne magnifiquement. J'ai besoin d'une deuxième boîte de saisie semi-automatique (id = "drug2") qui utilise le même tableau que ses choix. Je n'arrive pas à le faire fonctionner du tout. Chaque fois que j'essaie de modifier le code, je le casse sur les deux. Je suis sûr que quelqu'un là-bas a une solution élégante qui me conduira dans la bonne direction. . .jQuery Autocomplete Comment utiliser le même tableau local pour deux zones de texte différentes?

<script type="text/javascript"> 
function findValue(li) { 
if(li == null) return alert("No match!"); 

// if coming from an AJAX call, let's use the DrugId as the value 
if(!!li.extra) var sValue = li.extra[0]; 

// otherwise, let's just display the value in the text box 
else var sValue = li.selectValue; 

//alert("The value you selected was: " + sValue); 
} 

function selectItem(li) { 
findValue(li); 
} 

function formatItem(row) { 
return row[0] + " (id: " + row[1] + ")"; 
} 

function lookupLocal(){ 
var oSuggest = $("#drug")[0].autocompleter; 
oSuggest.findValue(); 
return false; 
} 

$(document).ready(function() { 
$("#drug").autocompleteArray(

    ['Acyclovir','Amikacin','Aminophylline','Amiodarone','Ampicillin','Atropine','Azithromycin','Aztreonam','Bupivacaine','Calcium Chloride','Calcium'], 
    { 
    delay:10, 
    minChars:1, 
    matchSubset:1, 
    onItemSelect:selectItem, 
    onFindValue:findValue, 
    autoFill:true, 
    maxItemsToShow:100 
    } 

); 
}); 
</script> 

Répondre

2

Vous pouvez utiliser un Multiple Selector dans votre appel jQuery puis appelez votre autocompleteArray sur ce point:

$(document).ready(function() { 
$("#drug1, #drug2").autocompleteArray(
    ['Acyclovir','Amikacin','Aminophylline','Amiodarone','Ampicillin','Atropine','Azithromycin','Aztreonam','Bupivacaine','Calcium Chloride','Calcium'], 
    { 
    delay:10, 
    minChars:1, 
    matchSubset:1, 
    onItemSelect:selectItem, 
    onFindValue:findValue, 
    autoFill:true, 
    maxItemsToShow:100 
    }  
); 
}); 
+0

Merci, qui fait sens, et plus important encore, cela fonctionne parfaitement! – Natan

+0

Content que ça marche! Veuillez accepter la réponse :) – tKe