2009-10-14 7 views
1

J'essaie de faire fonctionner ce plug-in pour mon scénario. mes données sont dans le format suivant:jquery autocomplete question

[ "50986,1 ST Savings Bank", " COMMERCIAL SERVICES JUNK GOT 70625,1-800 (USA) LLC", "42755.103RD ST SABLE LLC"]

la La première partie est l'identifiant de l'entreprise et je dois sauvegarder cette valeur une fois les données sélectionnées.

mon code:

<script type="text/javascript"> 
$().ready(function() { 
$("#suggest1").focus(function(){ 
      $("#suggest1").autocomplete(cities, 
       { 
     formatResult: function(data) { 
     return data.split(".")[1]; 
     } 
}); 
}); 

}); 
</script> 

<form autocomplete="off"> 
    <p> 
     <label>Single City (local):</label> 
     <input type="text" id="suggest1" /> 
     <input type="hidden" id="suggest1ID"/> 
     <input type="button" value="Get Value" /> 
    </p> 
</form> 

Firebug me dit que "data.split" n'est pas une fonction. Comment puis-je formater le résultat à: a) obtenir le texte pour le # suggérer1 b) obtenir l'id et l'enregistrer dans suggest1ID. comme: $ ("# suggest1ID"). val (data.split (".") [0])?

Oh, encore une chose: Sur le second focus(), y a-t-il un moyen de nettoyer le premier choix de la zone de texte?

merci d'avance.

Répondre

0

Vos données sont déjà dans un tableau, elles ne sont pas alimentées par le serveur. Donc vous n'avez pas à faire la chose divisée.

+0

Eh bien, il affiche 50986,1 ST Savings Bank SERVICES GOT JUNK 70625,1 à 800 COMMERCIAL (USA) LLC 42755.103RD ST SABLE LLC l'option. Je dois me débarrasser des ID à l'écran. – CFNinja

0

Je ne suis pas familier avec la saisie semi-automatique mais si vous voulez un tableau vous avec seulement les noms d'affichage, vous pouvez l'utiliser. J'espère que cela aide.

formatResult: function(data) { 
    var i, 
     l = data.length, 
     displayNames; 

    for (i = 0, i < l; (i += 1) { 
     displayNames.push(data[i].split('.')[1]); 
    }; 

    return displayNames; 
} 

Si cela ne fonctionne pas, vérifiez que les données sont bien réelles et que le tableau n'est pas une chaîne.

..fredrik

0

Miser sur l'exemple de Fredrik, je pense que cela fonctionnera pour autocomplete

function t(data) { 
    var i; 
    var l = data.length; 
    var displayNames=[]; 

    for (i = 0; i < l; i++) { 
     displayNames.push(data[i].split('.')[1]); 
    }; 

    return displayNames.join(" "); 
} 

Vous voyez, avec votre data.split(), vous essayez d'appliquer une "chaîne" fonction sur un « tableau », vous devez trouver chaque élément dans le tableau et les diviser individuellement, puis les rejoindre en arrière et les retourner à la fonction

espoir que cela se degage ...

0

Je fini référence à cette page: http://docs.jquery.com/Plugins/Autocomplete

créé une variable de données dans ce format: [{texte: '1 ST ÉPARGNE', id: '50986'}, {text: '1- 800 GOT JUNK SERVICES COMMERCIAUX (USA) LLC ', id:' 70625 '}];

et utilisé:

$("#sVendor").focus(function(){ 
$("#sVendor").autocomplete(vendors, {formatItem: function(item) { 
       return item.text; 
      } 
     }).result(function(event,item) { 
      //alert(item.id); 
      $("#sVendorID").val(item.id); 
     }); 
}); 

j'ai dû suivre ce fournisseur est en cours choisi par vendorID. Merci

Questions connexes