2011-03-14 51 views
4

我正在使用jQuery 1.4.4和jQuery UI 1.8.9。我有一个自动完成的字段,效果非常好,但是我想将输入限制在只有自动完成后端出现的位置。jQuery自动完成mustmatch没有任何效果

的documetation状态:

mustMatch布尔默认值:false

如果设置为true,则autocompleter将 只允许由后端呈现 结果。请注意,非法的 值会导致一个空的输入框。

但是,当我将mustMatch设置为true时,它没有任何区别 - 我仍然可以输入任何我喜欢的东西,但没有任何反应。

我很确定这是我正在做的事情,而不是一个错误,因为我没有看到任何指向谷歌的东西。

这里有一个代码片段:

$(".client").autocomplete({ 
    minLength: 2, 
    mustMatch: true, 
    source: function(request, response) { 
     var term = request.term; 
     if (term in client_cache) { 
      response(client_cache[ term ]); 
      return; 
     } 

     client_lastXhr = $.getJSON("amex/start.php?action=autocomplete&field=client", request, function(data, status, xhr) { 
      client_cache[ term ] = data; 
      if (xhr === client_lastXhr) { 
       response(data); 
      } 
     }); 
    } 
}); 

有人能看到我在做什么错?谢谢你的帮助!

回答

6

您可能在已弃用的插件的documentation page上找到此选项。 jQueryUI的当前文档位于here

看起来他们删除了mustMatch选项,但根据this StackOverflow question,您可以自己实现它。

+0

不错的工作,谢谢。 – 2011-03-14 23:19:37

+0

@John:没问题! – 2011-03-14 23:20:32

0

对于那些需要完整和简单得多解决方案,试试这个...

$("#my_autocomplete").autocomplete({ 
    source: "my_data.php", 
    change: function(e, ui) { 
     if (!ui.item) { 
      $(this).val(""); 
     } 
    }, 
    response: function(e, ui) { 
     if (ui.content.length == 0) { 
      $(this).val(""); 
     } 
    } 
}).on("keydown", function(e) { 
    if (e.keyCode == 27) { 
     $(this).val(""); 
    } 
}); 

的jsfiddle例如:http://jsfiddle.net/dfc83/

0

如果你想清楚了,只返回一个价值判断JSON那里的木材数据,然后你可以清空它。

如果想要清空,只需要判断返回的JSON里面的某值有木有数据,然后清空就可以啦

function selectRegion(){ 
$("#saleRegionSelect").autocomplete({ 
    source: function (request, response) { 
     var cityId=$("[name='city']").val(); 
     var oppType=$("[name='primaryBiz']:checked").val(); 
     var site= $.trim($("#channel").val()); 
     if(oppType==undefined){ 
      return false; 
     } 
     if(site==undefined){ 
      return false; 
     } 
     $.ajax({ 
      url: rootPath + "ajax/regionByCityAndSite", 
      dataType: "json", 
      type: "post", 
      data: { 
       region: request.term, 
       city:cityId, 
       site:site, 
       oppType:oppType 
      }, 
      success: function (data) { 
       if (!data.rows) { //Look at this line 

        $('#saleRegionSelect').val('');//clear 
        $('#saleRegion').val(''); //clear 

        response(($.map([], function (item) { 
         return {} 
        }))); 
       } else { 
        response(($.map(data.rows, function (item) { 
         return { 
          label: item.region + ($.trim(item.saleName)==""?"":' (' + item.saleName + ')'), 
          value: item.region + ($.trim(item.saleName)==""?"":' (' + item.saleName + ')'), 
          id: item.id 
         } 
        }))); 
       } 
      } 
     }) 
    }, 
    minLength: 1, 
    select: function (event, ui) { 
     $("#saleRegion").val(ui.item.id); 
    } 
}); 

}

=> JSON:

{ 
"status": 200, 
"message": "查询数据成功!", 
"rows": [{ 
    "id": "678140138089353216", 
    "oppType": 10, 
    "saleId": "201402201431456839e855", 
    "saleName": "陈", 
    "creator": "zhangdanling", 
    "createTime": "2015-12-19 17:26:29", 
    "modifier": "zhangdanling", 
    "modifyTime": "2015-12-22 11:11:35", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试测试", 
    "remark": "" 
}, { 
    "id": "678847511099609088", 
    "oppType": 10, 
    "saleId": "201402201431456839e855", 
    "saleName": "陈", 
    "creator": "zhangdanling", 
    "createTime": "2015-12-21 16:17:23", 
    "modifier": "zhangdanling", 
    "modifyTime": "2015-12-22 15:55:59", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试一区", 
    "remark": "" 
}, { 
    "id": "678910954649423872", 
    "oppType": 10, 
    "saleId": "201402201431456839e855", 
    "saleName": "陈", 
    "creator": "zhangdanling", 
    "createTime": "2015-12-21 20:29:30", 
    "modifier": "zhangdanling", 
    "modifyTime": "2015-12-21 20:29:30", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试区域三", 
    "remark": "" 
}, { 
    "id": "679596181579374592", 
    "oppType": 10, 
    "saleId": "201407081036237ccfe9dc", 
    "saleName": "张", 
    "creator": "zhangdanling", 
    "createTime": "2015-12-23 17:49:05", 
    "modifier": "zhangdanling", 
    "modifyTime": "2015-12-23 17:49:14", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试一下", 
    "remark": "" 
}, { 
    "id": "680322348053700608", 
    "oppType": 10, 
    "saleId": "201407081036237ccfe9dc", 
    "saleName": "张", 
    "creator": "SYS_INIT", 
    "createTime": "2015-12-25 17:54:20", 
    "modifier": "SYS_INIT", 
    "modifyTime": "2015-12-25 17:54:20", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试一下001", 
    "remark": "" 
}, { 
    "id": "681308156487278592", 
    "oppType": 10, 
    "saleId": "201402201431456839e855", 
    "saleName": "陈", 
    "creator": "zhangdanling", 
    "createTime": "2015-12-28 11:11:56", 
    "modifier": "zhangdanling", 
    "modifyTime": "2015-12-28 11:11:56", 
    "cityId": 147, 
    "site": 1, 
    "region": "测试离职销售区域", 
    "remark": "" 
}] 

}