0

Jquery オートコンプリートを使用して DB にクエリを実行します。この関数は、クラス「completeme_accounts」のすべてのテキスト フィールドにバインドされています。これは、ページの読み込み時に表示されるデフォルトのテキスト フィールドでは問題なく機能します。ただし、Jquery を使用してテキスト フィールドを追加すると、オートコンプリートが機能しません。ここで同様の解決策をいくつか確認しましたが、私のコードで機能する解決策が見つかりません。Jquery .on を使用する必要があると思います (ライブは非推奨であるため) が、方法がわかりません。私のコード:

$(document).ready(function(){ 

$(function() {
    function log( message ) {
        $( "<div>" ).text( message ).prependTo( "#log" );
        $( "#log" ).scrollTop( 0 );
    }

    $( ".completeme_accounts" ).autocomplete({
        mustMatch: true,
        source: "accounts_autocomplete.php",
        minLength: 2,
        select: function( event, ui ) {
            log( ui.item ?
                "Selected: " + ui.item.value + " aka " + ui.item.id :
                "Nothing selected, input was " + this.value );
        },
        change: function (event, ui) {
            if (!ui.item) {
                 $(this).val('');
             }
        }
    });
});

}); // Doc ready

入力フィールドを含むテーブル:

<table id="addaccount">
<tr>
<td><div class="ui-widget"><input name="account[1]" type="text" class="completeme_accounts" id="account1" value=""></div></td>
<td><input type="radio" name="source" id="radio" value="radio" class="required"></td>
</tr>
<tr>
<td colspan="2"><a href="#" id="addrow" onclick="return false;">Add another account</a></td>
</tr>
</table>

追加の入力フィールドを追加するスクリプト:

<script>
$rowid = 1;
$("#addrow").on("click", function(){
$rowid = $rowid + 1;
$('#addaccount tr:last').before('<tr><td><div class="ui-widget"><input name="account['+$rowid+']" type="text" class="completeme_accounts" id="account'+$rowid+'" value=""></div></td><td><input type="radio" name="payment_source" id="radio" value="radio" class="required"></td></tr>');
});
</script>
4

2 に答える 2

0

そのスクリプトで何をしようとしているのか正確にはわかりませんが、オートコンプリートの可能な値を変更したい場合は、次のようにすることができます:

$( "#tags" ).autocomplete( "option", "source",["the", "values", "you", "want"]);

于 2013-01-28T23:04:30.980 に答える