根据文本自动选择一个选项

时间:2010-10-22 06:52:10

标签: jquery

<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,旺角)文本框#address; 如何在#area中使用jquery自动选择旺角选项(价值:1001)

根据地址文本匹配区域

非常感谢..

例如

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

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

3 个答案:

答案 0 :(得分: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");
            }
        });
    });

答案 1 :(得分: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

答案 2 :(得分:0)

他想在输入地址时搜索匹配的选择选项。

也许有人可以让我的jsfiddle示例工作。我不确定如何检查一个字符串是否在另一个字符串中。 http://jsfiddle.net/gSBWw/