如何测试JSON搜索的否定回报

时间:2014-07-28 21:34:41

标签: jquery json

我正在构建一个搜索json对象的函数,并拉出某个邮政编码中的所有学校。我有一个脚本,当搜索出现积极时,但我无法测试负面结果条件,所以我可以提出“找不到学校”的消息。我已经剥离了一个寻找负面结果的位:

       $('#search').keyup(function(){
  if ($(this).val().length > 4) {
       $('#results').css({ "display": 'block'});
       var searchField = $('#search').val();
      var regex = new RegExp(searchField, "i");
        $.getJSON('schools.json', function(data) {
          $.each(data, function(key, val){
            if ((val.zip.search(regex) == -1) ) {
                var statusmsg2 = "No school found for that zip code. Please check it and try again.";
                $('#results').html(statusmsg2);
          });   /* End 'if search length < 1' */
        });  /* End 'getJSON' */
         }  /* End 'if' */
   }); // end keyup function

基本问题是我不知道怎么写条件。我应该测试什么而不是:

if ((val.zip.search(regex) == -1) ) 

或者完全有不同的方法吗?

1 个答案:

答案 0 :(得分:0)

将错误消息设置为默认消息,然后在找到匹配项时覆盖它。

如果你真的包含了找到匹配的代码,那会更有帮助,但是像这样的

$('#search').keyup(function () {
    if ($(this).val().length > 4) {
        var searchField = $('#search').val();
        var regex = new RegExp(searchField, "i");

        $('#results').css("display", 'block');

        $.getJSON('schools.json', function (data) {
            var statusmsg = "No school found for that zip code. Please check it and try again.";

            $.each(data, function (key, val) {
                if (val.zip.search(regex) != -1) {
                    statusmsg = val.message; // or whatever
                    return false;
                });
            });

            $('#results').html(statusmsg);
        });
    }
});