jquery autocomplete取消on unfocus

时间:2013-03-24 23:51:36

标签: jquery jquery-ui-autocomplete

我在Wordpress插件中使用jQuery Autocomplete。如何取消忘记时取消ajax / autocomplete? $first_id由PHP传递并允许多个实例。

jQuery(document).ready(function ($){

  $("#'.$first_id.'").autocomplete({
    source: function(req, add){
      $.getJSON("'.site_url().'/wp-admin/admin.php?page=church_admin/index.php&action=get_people&callback=?", req,  function(data) {

        //create array for response objects
        var suggestions = [];

        //process response
        $.each(data, function(i, val){
          suggestions.push(val.name);
        });

        //pass array to callback
        add(suggestions);
      });

    },
    select: function (event, ui) {
      var terms = $("#'.$first_id.'").val().split(", ");
      // remove the current input
      terms.pop();
      console.log(terms);
      // add the selected item
      terms.push(ui.item.value);
      console.log(terms);
      // add placeholder to get the comma-and-space at the end
      terms.push("");
      this.value = terms.join(", ");
      $("#'.$first_id.'").val(this.value);
      return false;
    },
    minLength: 3,

  });
});

1 个答案:

答案 0 :(得分:0)

我认为自动完成功能会自动为您处理。 jQuery site显示的示例实现显示,当焦点发送到其他位置时,自动完成功能将被关闭。

你是否可能有一些代码阻止它正常关闭?

无论如何 - 您可以手动调用自动填充功能,但我会首先调查代码中发生的情况。

$("#'.$first_id.'").on('blur', function(){
    $("#'.$first_id.'").autocomplete("close");
}

编辑

从您的评论中,您可能会在显示自动填充时添加一些额外的CSS。您可以通过以下任一方式收听close事件来关闭自动填充功能时将其删除:

$( ".selector" ).autocomplete({
  close: function( event, ui ) {}
});

$( ".selector" ).on( "autocompleteclose", function( event, ui ) {} );