jquery-ui自动完成的错误操作

时间:2019-02-01 08:13:40

标签: javascript ajax jquery-ui jquery-ui-autocomplete

在重新加载页面后,当您在输入中输入单个字符时,立即没有任何反应。当您输入以下字符时,将开始补码。

获取数据

`function getData(data, callback) {
            $.ajax({
                url: "myUrl" + encodeURIComponent(data),
                method: "GET",
                dataType: "JSON",
                success: callback
            })
        }`

回调函数

 `function autocompleteInput () {
       var dataInput = $("#myInput").val();
       function success(data) {
         var dataArr = [];
         for (var i = 0; i < data.data.length; i++) {
           dataArr.push(data.data[i].name);
               }
                    $("#myInput").autocomplete({
                        source: brokersNameArr,
                        delay: 500,
                        minLength: 1
                    })
                  getData(dataInput, success);
       }`

在html中使用

$("#myInput").keyup($.throttle(200, autocompleteInput));

1 个答案:

答案 0 :(得分:0)

将提出以下建议:

var dataArr = [];
$("#myInput").autocomplete({
  source: function(req, resp){
    $.getJSON("myurl?" + req.term, function(results){
      $.each(results.data, function(k, r){
        dataArr.push(r.name);
      });
      resp(results);
    });
  },
  delay: 500,
  minLength: 1
});

您可能还需要查看:http://jqueryui.com/autocomplete/#multiple-remote

source使用功能将使您能够管理数据的发送和接收方式。

  

<强>功能:第三变型中,回调,提供最大的灵活性和可用于任何数据源连接到自动填充,包括JSONP。回调有两个参数:

     
      
  • 一个具有单个term属性的请求对象,该属性引用文本输入中当前的值。例如,如果用户在城市字段中输入"new yo",则自动填充项将等于"new yo"

  •   
  • 一个response回调,它需要一个参数:数据向用户建议。该数据应根据提供的术语进行过滤,并且可以采用上述针对简单本地数据描述的任何格式。提供自定义源回调以处理请求期间的错误时,这一点很重要。即使遇到错误,也必须始终调用response回调。这样可以确保小部件始终具有正确的状态。

  •   

希望这会有所帮助。