Jquery自动完成一个输入更多值

时间:2013-02-15 09:13:44

标签: jquery input

我的头衔可能有点难以理解。我正在努力做到以下 jquery autocomplete:

看到这个小提琴:

http://jsfiddle.net/96Y2y/

如果用户输入“j”,他就会得到Jochen + John。到现在为止还挺好。让我们说他选择了 约翰。我想知道的是,他在输入中选择了约翰的一切 除了括号中的数字外,它是切割的。结果应如下所示:

7,

在此操作之后,用户应该能够在逗号后再次开始写一个名字, 假设他写了“chris”,在他选择之后,输入应该如下:

7,9

等等。这可能吗?

我认为第一步是检查“onfinishedselect”行动

select: function (event, ui){
alert("|" + $("#targetID").val() + "|1stAlert");
}

喜欢这篇文章:jQuery UI autocomplete fire new event after selecting an item

亲切的问候,并感谢您的帮助,

2 个答案:

答案 0 :(得分:1)

您可以使用multiple values demo的代码并使用正则表达式仅插入括号之间的数字:

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

function split( val ) {
    return val.split( /,\s*/ );
}

$(function() {
    var availableTags = [
        "Max (1)", 
        "Paul (3)",
        "John (7)",
        "Jochen (11)",
        "Chris (9)"
    ];
    $( "#tags" ) .autocomplete({
        minLength: 0,
        source: function( request, response ) {
            // We trim the search term before comparing to the source
            request.term = $.trim(request.term);
            // delegate back to autocomplete, but extract the last term
            response( $.ui.autocomplete.filter(
                availableTags, extractLast( request.term ) ) );
        },
        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 number between parentheses for the selected item
            var num = ui.item.value.match(/\((\d+)\)/);
            var value = num[1];
            terms.push( value );
            // add placeholder to get the comma-and-space at the end
            terms.push( "" );
            this.value = terms.join( "," );
            return false;
        }
    });
});

请在此处查看jsFiddle:http://jsfiddle.net/96Y2y/2/

答案 1 :(得分:0)

也许最好的解决方案是将数字放在另一个非自动完成的字段中。

你可以使用这个插件https://github.com/dyve/jquery-autocomplete的函数'onItemSelect'来做到这一点