【问题标题】:JQuery ui autocomplete trigger function after programatically search以编程方式搜索后的JQuery ui自动完成触发功能
【发布时间】:2016-03-22 05:15:49
【问题描述】:

我有一个带有 JQuery ui 自动完成建议的街道输入字段。在用户选择其中一个建议后,他应该输入数字。然后在数字模糊中,如果街道在建议中,则使用以下自动完成搜索功能验证功能。如果是,则应调用其他函数。 我无法调用其他函数。

这是我的代码:

$("#street").autocomplete({ 
   source: "street.php",
minLength: 2,    
    search: function (event,ui) {
            //Return to input field
            if (ui.item==null)
             {
             alert("Please select a street.");          
           $("#street").focus();
           return;
            } else{
                //call an outside function,
                //does not work
                address-search();
            }               
    }
  });

提前感谢您帮助解决此问题。

【问题讨论】:

    标签: jquery jquery-ui autocomplete


    【解决方案1】:

    我认为您需要搜索回调来做到这一点:

    $("#street").on("autocompletesearch", function(event, ui) {
        if (ui.item === null) {
           alert("Please select a street.");          
           $("#street").focus();
        } else {
           address-search();
        }
    });
    

    此处的文档:http://api.jqueryui.com/autocomplete/#event-change

    编辑:根据你的具体代码,我想你想要这个:

    $(document).ready(function() {
      var availableTags = [
        "1.Street",
        "2.Street",
        "3.Street"
      ];
      $("#street")
        .autocomplete({
          source: availableTags,
          minLength: 2,
        })
        .on("autocompletechange", function(event, ui) {
          if (ui.item === null) {
            alert("Please select a street.");
            $("#street").focus();
            xhr.abort();
          } else {
            address_search();
          }
        });
      function address_search() {
        alert($("#street").val());
      }
    });
    

    更新jsfiddle:https://jsfiddle.net/dupxj3mu/3/

    【讨论】:

    • 您好,自动完成搜索未正确检查并触发错误结果。
    • 你有完整的代码,或者一个 jsfiddle 的链接,这样我就可以看到问题的实际效果?
    • 您好,如果在我的脚本中使用此代码,但也仅在错误输入后有效。 jsfiddle.net/dupxj3mu 也许是因为我无法启用 Jquery。感谢您的帮助。
    • 你肯定需要 jQuery 和 jQueryUI 来自动完成工作:jsfiddle.net/dupxj3mu/2
    • 您好 tymothytym,感谢您启用 Jquery。如前所述,它仅在输入错误后才起作用。如果街道输入字段的街道名称错误,我将需要在没有错误输入的情况下触发该功能或停止 search_street 功能的可能性。
    【解决方案2】:

    谢谢,我找到了适合自己的解决方案。 https://jsfiddle.net/dupxj3mu/5/

    function search_street() {
        $("#street").on("autocompletechange", function(event, ui) {
          if (ui.item === null) {
            $("#hiddenstreet").val($("#street").val());
            $("#street").val("");
            return false;
          }
        });
        if ($("#street").val() === "") {
          $("#street").val($("#hiddenstreet").val());    
          $("#street").focus();
          alert("Please select a street.");     
          $("#hiddenstreet").val("");
          return false;
        } else {
          address_search();
        }
      }
    

    但是自动完成测试只运行一次,地址搜索()也会被错误的街道名称调用。我将在输入错误时清空街道输入字段,并将街道输入错误的 DIV 放在一边。然后 address_search() 将仅在正确选择时运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-19
      • 1970-01-01
      相关资源
      最近更新 更多