2010-02-16 17 views
1

J'ai un formulaire avec 2 champs de texte qui sont remplis en utilisant auto complete. Maintenant, lorsque j'entre une valeur dans le formulaire 1 (par saisie semi-automatique), je veux que le second champ de formulaire récupère les valeurs auto-complétées en utilisant le texte entré dans field1 comme l'un des paramètres. Disons que,comment écrire un gestionnaire d'événements jquery pour les champs auto-complétés dépendants?

texte 1 < contient les noms de marque de voiture qui sont auto habitées>

texte 2 < modèles de toutes les voitures à nouveau auto peuplé> (key = marque de voiture)

Après avoir saisi la valeur dans le texte 1 par exemple Ford, je veux déclencher un événement qui va charger le remplissage automatique en text2 en prenant 'Ford' comme clé soit charger toutes les voitures appartenant à 'Ford' (tous les remplissages automatiques se produisent par des appels ajax pour moi)

est le meilleur déclencheur d'événement (keypress, keyup ou onchange) w Est-ce que je devrais employer pour réaliser ceci sans couture sans n'importe quels décalages de temps ou problèmes de synchronisation? Faites-moi savoir si je ne suis pas clair.

Répondre

0

Je voudrais utiliser l'événement "focusout" sur la première zone de texte.

$('#text_box_one').focusout(function() { 
    //Your auto-complete code goes here. 
    //Or preferably replace this inline function with a call to an auto-complete function 
}); 
1

Essayez ceci:

<input type="text" name="text1" value="whatever" id="text1" /> 
<input type="text" name="text2" value="whatever" id="text2" /> 

Maintenant, vous pouvez utiliser JQuery comme ceci:

$("#text1").blur(function(){ 
    $("#text2").val = $(this).val(); 
}); 

J'ai utilisé flou événement ici, mais vous pouvez utiliser correspondant keypress, changer selon votre condition.

+0

pourquoi vous invoquez val() sur le texte 1 à nouveau dans le gestionnaire d'événement? Aussi presser sur text1 n'aidera pas beaucoup puisqu'il continuerait à déclencher le remplissage automatique sur le texte 2 avec chaque caractère entré dans le texte 1 –

+0

@Akhay: Je l'ai déjà réglé, d'ailleurs quel événement vous semble le plus approprié pour vous? – Sarfraz

+0

et comme je l'ai dit, vous pouvez utiliser d'autres éléments dans ma réponse selon vos besoins. – Sarfraz

1

Vous pouvez utiliser ajax pour obtenir l'ensemble de données complet et puis insérez les données à la forme en utilisant js quelque chose comme:

jQuery("#formID").value('value')