2010-10-22 7 views
0
<script type="text/javascript"> 
var area = {'Mongkok': 1001,'Wan Chai': 1002, 'Sai Kung' : 1003}; 
</script> 
<select id="area"> 
<option value='0'>choose an area</option> 
<option value='1001'>Mong kok</option> 
<option value='1002'>Wan Chai</option> 
<option value='1003'>Sai Kung</option> 
</select> 
<input id='address' type='text' /> 

Quand j'entrer du texte (16 Argyle Street, Mongkok) la zone de texte #address; Comment utiliser jquery sélection automatique l'option Mongkok (valeur: 1001) dans #areaautomatiquement sélectionné une option selon le texte

Selon la zone de correspondance de texte Adresse

merci beaucoup ..

par exemple

//when #address's value='16 Argyle Street, Mongkok' 

//addres var match Mongkok 
//then <option value="1001" selected="selected">Mong kok</option> 

Répondre

0

Mise à jour Version:

$("#address").keyup(function() { 
    var adress = $(this).val(); 
    for (var v in area) { 
     if (adress.indexOf(v) >= 0) { 
      $("#area").val(area[v]); 
      break; 
     } 
    } 
}); 

Working example

Notez que cela ne peut-être pas très bien l'échelle. Il doit parcourir tous les éléments en area et si vous en avez beaucoup, cela pourrait devenir un problème. En outre, vous pouvez ajouter une sorte de délai d'attente, afin que le code ne soit exécuté qu'après que l'utilisateur n'a pas tapé du texte pendant une courte période. Voir this question.

+0

lorsque # valeur de l'adresse = '16 rue Argyle, Mongkok ', addres var match Mongkok puis love

+0

@LNXA: oh désolé ... –

+0

Merci pour votre aide – love

0

Essayez ceci

$("#address").keyup(function(){ 
     var val = this.value.replace(/ /g,""); 
     $.each($("#area option"), function(){ 
      var optVal = $(this).text().replace(/ /g,""); 
      if(optVal == val){ 
       (this).attr("selected","selected"); 
      } 
     }); 
    }); 
+0

scénario gentil, Merci – love

+0

Si vous voulez entré Adresse substring, vous pouvez changer si condition si (val.indexOf (OPTVAL)! = -1) –

+0

Vous devez ajouter un 'revenir false' afin que vous ne boucle pas sur chaque élément une fois que vous en avez sélectionné un. –

0

Il souhaite rechercher une option de sélection correspondante lors de la saisie de l'adresse. Peut-être que quelqu'un peut faire fonctionner mon exemple jsfiddle. Je ne sais pas exactement comment vérifier si une chaîne est dans une autre chaîne. http://jsfiddle.net/gSBWw/

Questions connexes