2010-10-22 4 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' /> 

Когда я ввожу текст (16 Argyle Street, Mongkok) текстовое поле #address; Как использовать JQuery автоматический выбор вариант Mongkok (значение: 1001) в #areaавтоматически выбирается вариант в соответствии с текстом

По области согласования текста адрес

спасибо большое ..

например

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

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

ответ

0

Обновлено версия:

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

Working example

Обратите внимание, что это, вероятно, не очень хорошо масштабируется. Он должен перебирать каждый элемент в area, и если у вас много, это может стать проблемой. Кроме того, вы можете захотеть добавить какой-то тайм-аут, чтобы код запускался только после того, как пользователь не набрал какой-то текст за короткое время. См. this question.

+0

, когда значение # address = '16 Argyle Street, Mongkok ', addres var match Mongkok then love

+0

@LNXA: oh sorry ... –

+0

Спасибо за вашу помощь – love

0

Попробуйте это

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

хороший сценарий, спасибо – love

+0

Если вы хотите введен адрес в качестве подстроки, вы можете изменить, если условие, если (val.indexOf (optVal)! = -1) –

+0

Вы должны добавить 'вернуть false' так, что вы не перебирайте каждый элемент после его выбора. –

0

Он хочет найти подходящий вариант выбора при вводе адреса.

Возможно, кто-то может заставить мой пример jsfiddle работать. Я не совсем уверен, как проверить, находится ли одна строка внутри другой строки. http://jsfiddle.net/gSBWw/

Смежные вопросы