Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery自动完成不';如果未选择任何值,则不会激发_Javascript_Jquery_Jquery Autocomplete - Fatal编程技术网

Javascript jQuery自动完成不';如果未选择任何值,则不会激发

Javascript jQuery自动完成不';如果未选择任何值,则不会激发,javascript,jquery,jquery-autocomplete,Javascript,Jquery,Jquery Autocomplete,用例:用户正在寻找“测试” 工作示例:用户编写“测试”并选择自动完成值 问题:用户写入“测试”并按enter键 下一次当我点击inputfield时,没有自动完成功能,但只有在我按下enter键(选择输入值)之前才有自动完成功能 在我的控制台中从来没有“曾经在这里…”那么为什么自动完成(“搜索”)事件不会触发呢 谢谢大家! 也许你可以解释一下你到底在寻找什么,但这似乎在这里奏效。您没有显示所有代码,或者存在更大的问题,因为您引用that和定义showAutocomplete函数的方式永远无法正常

用例:用户正在寻找“测试”

工作示例:用户编写“测试”并选择自动完成值

问题:用户写入“测试”并按enter键

下一次当我点击inputfield时,没有自动完成功能,但只有在我按下enter键(选择输入值)之前才有自动完成功能

在我的控制台中从来没有“曾经在这里…”那么为什么自动完成(“搜索”)事件不会触发呢


谢谢大家!

也许你可以解释一下你到底在寻找什么,但这似乎在这里奏效。您没有显示所有代码,或者存在更大的问题,因为您引用
that
和定义
showAutocomplete
函数的方式永远无法正常工作

但在小提琴中,每个
焦点
点击
都会显示自动完成。但是,如果选择了某些内容,它将仅显示上次搜索的结果。例如,如果我键入
test
并且
test
不在结果中,则即使在字段
模糊之后,也不会显示任何内容,然后只要输入保持值
test
,我
再次聚焦它。如果结果中有
test
,那么下次我选择该字段时,它将只显示
test
。删除该值将显示更多结果

还有
that.autocomplete(“search”,that.val())不是如何触发搜索事件或如何初始化它。要设置搜索事件,请执行以下操作:

$("#tags").autocomplete({
    source: availableTags,
    minLength: 0,
    search: function (event, ui) {
        // do something on event
    }
});
或者在初始化自动完成后,可以执行以下操作:

$el.autocomplete("search", function (event, ui) {
        // do something on event
    }
);
在您的示例中,每当您关注或单击试图附加新处理程序以进行搜索的字段时,除非您只传递一个值而不是函数。连接搜索后,您可以通过以下操作手动触发搜索:

 $el.trigger('search');
但要指出的是,在您的示例中,这实际上不会起任何作用,因为您从未将处理程序附加到搜索事件

小提琴:

HTML:


您在控制台中看到任何错误了吗?你能用片段或小提琴再现这个问题吗?如果您与我们共享一个复制该问题的工作小提琴,我们可以更好地帮助您。您是否尝试了
按键
事件?colsole中没有错误。。。我将尝试按键事件并让您知道!如果我模糊-设置输入字段的焦点或删除值,则不会自动完成。。。我必须写一封信,然后自动完成就可以了。你说得对,这把小提琴不需要“这个”,你需要更详细地说明问题所在。正如我在回答中所解释的,如果您试图触发搜索事件,您必须首先将处理程序附加到它,然后手动正确地触发它。具体问题是什么?我所附的提琴工作正常,因此您的代码似乎有问题,但正如我在回答中所述,您没有显示所有代码或有更大的问题,因为您在问题中显示的内容永远不会工作。我无法在jfiddle上创建它,因为我无法在那里制作模型。。。你还有别的想法吗?我怎么才能解开它?我还不知道你想做什么。你想解开什么?你到底有什么问题?
 $el.trigger('search');
<label for="tags">Tags:</label>
<input id="tags">
$(function () {
    var availableTags = [
        "ActionScript",
        "AppleScript",
        "Asp",
        "BASIC",
        "C",
        "C++",
        "Clojure",
        "COBOL",
        "ColdFusion",
        "Erlang",
        "Fortran",
        "Groovy",
        "Haskell",
        "Java",
        "JavaScript",
        "Lisp",
        "Perl",
        "PHP",
        "Python",
        "Ruby",
        "Scala",
        "test",
        "Scheme"];
    $("#tags").autocomplete({
        source: availableTags,
        minLength: 0
    }).focus(function () {
        showAutocomplete($(this));
    }).click(function () {
        showAutocomplete($(this));
    });

    function showAutocomplete(that) {
        that.autocomplete("search", that.val());
        console.log("was here...");
    }
});