0

複数の値で jQ UI オートコンプリートを使用する

私の機能はそのように見えます

mailto_input.bind( "keydown", function( event ) {
    if ( event.keyCode === $.ui.keyCode.TAB && $( this ).data( "autocomplete" ).menu.active ) {
        event.preventDefault();
    }
}).autocomplete({
    source: function( request, response ) {
        $.getJSON( "core/search.php", {
            term: extractLast( request.term )
        }, response );
    },
    search: function(){
        // custom minLength
        var term = extractLast( this.value );
        if ( term.length < 2 ) {
            return false;
        }
    },
    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
        terms.push( ui.item.value );
        // add placeholder to get the comma-and-space at the end
        terms.push( "" );
        this.value = terms.join( "; " );
        return false;
    }
});

私が達成しようとしているのは、ユーザーがサーバー側のデータのみを選択するように制限することです。つまり、PHP 側からの結果がある場合にのみ、用語を入力ボックスに追加したいと考えています。そうでなければ、この用語のようなサーバーにデータがないことをユーザーに通知します

例のために。

ここに画像の説明を入力

のような単語を追加しないようにしたいsdsf(この場合、サーバーは のように応答します[])。つまり、サーバー側から少なくとも 1 つの提案がある場合にのみ追加します。それ以外の場合はそのままにして、問題についてユーザーに通知します。

それは可能ですか?どうすればこの結果を達成できますか?

4

2 に答える 2

1

Tokeninputを試してみてください。それはあなたがやろうとしていることを正確に行います。

また、これがあなたが望むものであることを確認するためのデモです...

于 2012-05-21T22:56:05.347 に答える
0

彼らが行う方法は、タグをスパンに交換することです。

<div id="taginput">
    <span id="tags">
    <span>tagname</span>
    </span>
    <input type="text" id="tagtext"/>
</div>

提案がスパンとして前に追加されるようにする必要があります。

$('.suggestion_element_class').click(function() {
    textof = this.text();
    $('#tags').append('<span>' + textof + '</span>');
    $('#tagtext').val('');
});

もちろん、最初に提案をすべて取得する必要があります。

于 2012-05-21T23:12:51.027 に答える