Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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
JQuery UI自动完成第一次不自动显示结果_Jquery_Jquery Ui - Fatal编程技术网

JQuery UI自动完成第一次不自动显示结果

JQuery UI自动完成第一次不自动显示结果,jquery,jquery-ui,Jquery,Jquery Ui,我正在使用jQueryUI自动完成功能来显示结果。它似乎在任何情况下都能正常工作接受我第一次在文本框中粘贴的值。它获取结果,但自动完成不会显示结果,除非我必须按下向下键。我一按这个键,它就会显示带有结果的自动完成ui。下次我粘贴要搜索的单词时,它工作得非常好,并显示自动完成的结果。下面是我正在使用的代码: $("input.autocompleteData").on('input', function (e) { e.stopImmediatePropagation();

我正在使用jQueryUI自动完成功能来显示结果。它似乎在任何情况下都能正常工作接受我第一次在文本框中粘贴的值。它获取结果,但自动完成不会显示结果,除非我必须按下向下键。我一按这个键,它就会显示带有结果的自动完成ui。下次我粘贴要搜索的单词时,它工作得非常好,并显示自动完成的结果。下面是我正在使用的代码:

$("input.autocompleteData").on('input', function (e) {
        e.stopImmediatePropagation();
        var txtVal = $(this).val().toLowerCase();
        var pastedValue = true;
        getAutoCompletedata($(this), txtVal, pastedValue);
    });

function getAutoCompletedata(cntl, input, pastedValue) {

        var self = this;
        if (input.length < 2) {
            // Clear the array
            self.hqListData = [];
        }
        else if (input.length == 2 || pastedValue) {

            getHQListData(input);
        }
        // first clear array
        self.hqFilterListData = [];
        // fill data 
        // for text length greater than minLengthForSearch filter data from array
        $.each(self.hqListData, function (i, val) {

            if (val != undefined && val != null && val.name.toLowerCase().indexOf(input) >= 0) {

                //push data into payerFilterList
                self.hqFilterListData.push({ label: val.name, value: val.id });
            }
        });




        $(cntl).autocomplete({
            source: self.hqFilterListData, scroll: true, select: function (e, ui) {
                var uniqueId = new Date().getTime();
                var alreadyAdded = false;

                $("div#resultsection input[type='hidden']").each(function (i) {
                    if (unescape(this.value).trim() === unescape(ui.item.value).trim()) {
                        alreadyAdded = true;
                        return false;
                    }
                });
                if (!alreadyAdded) {
                    $("#resultsection").empty();
                    $("#resultsection").append("<span id='" + uniqueId + "' class='multiselectContainer'><span class='indivSelectedText'>" + ui.item.label + "</span><input class='indivSelectedValue'  type='hidden' value=" + escape(ui.item.value) + " ></input> <a href='#' class='fa fa-times-circle labelclose'></a></span>");
                }
                $(cntl).val('');
                return false;
            },
            focus: function (event, ui) {
                $(this).val(ui.item.label);
                return false;
            }
        });



    }

function getHQListData(input) {
        var self = this;
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: "ReviewPools.aspx/GetHQList",
            data: JSON.stringify({ 'searchText': input }),
            dataType: "json",
            async: false,
            success: function (output) {
                var retVal = JSON.parse(output.d); // output.d
                if (retVal.length === 0) {
                    alert("No Headquarter Found");
                    return false;
                }
                self.hqListData = [];
                $.each(retVal, function (i, val) {
                    self.hqListData.push({ "id": val.BUSINESS_RID, "name": val.COMPANY_NAME });
                });
            },
            error: function (errormsg) {
                alert(errormsg.responseText);
                state = 0;
            }
        });
    }
一切正常接受我第一次粘贴的值。它确实会得到结果,但仅当按下向下键时才会显示。这是JqueryUI的问题吗?我错过了什么?

试试这个

<input type="text" onpaste="myFunction()" value="Paste something in here">