当输入值包含特定字符时,影响更改的邮政编码搜索

时间:2015-09-27 15:19:17

标签: jquery string substring postal-code

我试图创建一个简单的邮政编码搜索。当输入值仅包含每个邮政编码的前两个字母时,我能够影响更改,如变量中所定义。

var AB = "AB";
var AL = "AL";

但是,如果输入完整的邮政编码,其中包含的字符数多于定义的变量,则不会进行任何更改。我如何构造变量,以便它们查找仅包含已定义字符的输入值。

JSFiddle of what I have so far

1 个答案:

答案 0 :(得分:0)

多个变量对于您尝试执行的操作而言是多余的,使用多维数组并循环遍历每个变量。解决方案[jsFiddle here

$('.find').click(function() {

  var text = $("#distancePostcode").val().toLowerCase();
  var PostCode = {
    'AB': 'test1',
    'AL': 'test2'
  }

  for (var key in PostCode) {
    if (key.toLowerCase().indexOf(text) > -1) {
      for (var key2 in PostCode) {
        $('#' + PostCode[key2]).css("background", "");
      }
      $('#' + PostCode[key]).css("background", "red");
      break;
    }
  }

});
.test {
  margin: 10px 0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" placeholder="Postcode" id="distancePostcode"> <a class="find">find</a> 
<div class="test" id="test1">test 1</div>
<div class="test" id="test2">test 2</div>

] 1