Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 Ui_Jquery Plugins - Fatal编程技术网

Javascript jquery使用“@”自动完成

Javascript jquery使用“@”自动完成,javascript,jquery,jquery-ui,jquery-plugins,Javascript,Jquery,Jquery Ui,Jquery Plugins,我想用jQueryUIAutoComplete实现这种fiddler演示 我的示例唯一的问题是箭头键事件中有一个问题,与jquery自动完成不同。此处的工作演示:&& 正如您提到的使用自动完成: 因此,我的textarea输出将是@c,而输入标记输出将是@c be@[c] HTML 这里的工作演示:&& 正如您提到的使用自动完成: 因此,我的textarea输出将是@c,而输入标记输出将是@c be@[c] HTML 我编写了这个问题中提到的小部件,并修复了这个问题: 我编写了这个问题中提到的小

我想用jQueryUIAutoComplete实现这种fiddler演示

我的示例唯一的问题是箭头键事件中有一个问题,与jquery自动完成不同。

此处的工作演示:&&

正如您提到的使用自动完成:

因此,我的textarea输出将是@c,而输入标记输出将是@c be@[c]

HTML

这里的工作演示:&&

正如您提到的使用自动完成:

因此,我的textarea输出将是@c,而输入标记输出将是@c be@[c]

HTML


我编写了这个问题中提到的小部件,并修复了这个问题:


我编写了这个问题中提到的小部件,并修复了这个问题:



您可以尝试我们刚刚在GitHub中开源的以下jquery插件:

您可以尝试我们刚刚在GitHub中开源的以下jquery插件:

你好!因此,您想要相同的行为,即如果隐藏标记的大小写值为=@[C],文本区域为@C,但对于这个JSFIDLE?干杯不,不是这个JSFIDLE,我想使用jquery自动完成插件。。。这一个有问题尝试使用你的箭头键,直到你到达下拉列表的末尾,但确保先填充文本区域确定,尝试箭头键,似乎等待+1事件;如果您能用JSFIDLE详细说明您的输入和输出需求,我可能会帮助您实际上,JSFIDLE的输出就是我需要的。。。但是我想使用jquery自动完成来实现它。我使用的插件是不同的,有问题的箭头键和选择。。。因此,您可以在jquery自动完成上使用与JSFIDLE相同的输出来实现这一点吗。。。你的意思是:使用这个和你想要的1从文本区域中选择,2在输出文本框中显示值?对不起,如果我问的问题太多了,我只是想确保我正确理解了你的问题:你好!因此,您想要相同的行为,即如果隐藏标记的大小写值为=@[C],文本区域为@C,但对于这个JSFIDLE?干杯不,不是这个JSFIDLE,我想使用jquery自动完成插件。。。这一个有问题尝试使用你的箭头键,直到你到达下拉列表的末尾,但确保先填充文本区域确定,尝试箭头键,似乎等待+1事件;如果您能用JSFIDLE详细说明您的输入和输出需求,我可能会帮助您实际上,JSFIDLE的输出就是我需要的。。。但是我想使用jquery自动完成来实现它。我使用的插件是不同的,有问题的箭头键和选择。。。因此,您可以在jquery自动完成上使用与JSFIDLE相同的输出来实现这一点吗。。。你的意思是:使用这个和你想要的1从文本区域中选择,2在输出文本框中显示值?对不起,如果我问的问题太多了,我只是想确保我正确理解你的问题:有点不对劲。。。你不能以多种方式使用它,它只会附加@[提及]而不是整个字符串……嗯,你是什么意思?如果您使用上面的JSFIDLE并告诉输入和输出我将进行更改?请在点编号中输入:例如,您在textarea=@android hello@c中键入此项,并且在输入框中的值应为@[android]hello@a[c]。。。但是你贴的那张不同。文本区域是android hello@c,输入框@[c]不更新eaha,因此您还需要:如果您在纹理中键入@foobad zoo@c;输入框应该是@foobad zoo@[C]是的?好的,给我5分钟,我可能可以在自动完成中完成。有点问题。。。你不能以多种方式使用它,它只会附加@[提及]而不是整个字符串……嗯,你是什么意思?如果您使用上面的JSFIDLE并告诉输入和输出我将进行更改?请在点编号中输入:例如,您在textarea=@android hello@c中键入此项,并且在输入框中的值应为@[android]hello@a[c]。。。但是你贴的那张不同。文本区域是android hello@c,输入框@[c]不更新eaha,因此您还需要:如果您在纹理中键入@foobad zoo@c;输入框应该是@foobad zoo@[C]是的,好的,给我5分钟,我可以在自动完成中完成。
<textarea id='inputbox' placeholder='When @mentions is called its output is put on the input box as well as updated when textarea is blur and submitted'></textarea>
<br/>
<input id="tags" />
<span id="loading" class="hidden">Loading...</span>
​
function split(val) {
    return val.split(/@\s*/);
}

function extractLast(term) {
    return split(term).pop();
}

function getTags(term, callback) {
    $.ajax({
        url: "http://api.stackoverflow.com/1.1/tags",
        data: {
            filter: term,
            pagesize: 5
        },
        type: "POST",
        success: callback,
        jsonp: "jsonp",
        dataType: "jsonp"
    });    
}

$(document).ready(function() {

    $("#inputbox")
    // don't navigate away from the field on tab when selecting an item
    .bind("keydown", function(event) {
        if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {

            event.preventDefault();
        }
    }).autocomplete({
        source: function(request, response) {
            if (request.term.indexOf("@") >= 0) {
                $("#loading").show();
                getTags(extractLast(request.term), function(data) {
                    response($.map(data.tags, function(el) {
                        return {
                            value: el.name,
                            count: el.count
                        }
                    }));
                    $("#loading").hide();                    
                });
            }
        },
        focus: function() {
            // prevent value inserted on focus
            return false;
        },
        select: function(event, ui) {
            var terms = split(this.value);
            // remove the current input
            terms.pop();
            // add the selected item
            $("#tags").val("@["+ui.item.value+"]");
            ui.item.value = "@" + ui.item.value;                
            terms.push(ui.item.value);
            // add placeholder to get the comma-and-space at the end
            terms.push("");
            this.value = terms.join("");
            return false;
        }
    }).data("autocomplete")._renderItem = function(ul, item) {
        return $("<li>")
            .data("item.autocomplete", item)
            .append("<a>@[" + item.label + "]&nbsp;<span class='count'>(" + item.count + ")</span></a>")
            .appendTo(ul);
    };
});​
span.count { 
    font-style: italic; 
    color: #C0C0C0;
}
.hidden { display: none; }

textarea { width: 300px; height: 100px; resize: none; }
​