0

以下の行は動的に生成されます

<input id="soid0" name="soid[0].name" type="text" />
<input id="soid1" name="soid[1].name" type="text" />
<input id="soid2" name="soid[2].name" type="text" />

テキスト フィールドをトラバースすると、Ajax クエリはバックエンドを呼び出し、一致するデータが存在する場合はそれを取得する必要があります。

    $(document).ready(function() {
        $( "#soid0" ).autocomplete({
            source: "/myapp/soid.htm"
        });

    });

#soid0クエリは機能しますが、動的に生成されたすべての行に対して機能させたい#soid1ですか? つまり、すべてのテキスト フィールドに対して機能する 1 つのクエリが必要です。

ありがとう

4

1 に答える 1

2

属性セレクター別


属性セレクターは、開始文字セレクターと組み合わせて使用​​します^

$(document).ready(function() {
    $('input[name^="soid"]' ).autocomplete({
        source: "/myapp/soid.htm"
    });
});

jquery のドキュメントでは、クラスを使用できる場合はこのセレクターを使用しないようにアドバイスしていることに注意してください。

ただし、クラス セレクターを使用するよりも遅くなるため、可能であればクラスを利用して要素をグループ化します。

クラス別(推奨方法)


または、各入力にクラスを適用します。

HTML

<input id="soid0" class="soid" name="soid[0].name" type="text" />
<input id="soid1" class="soid" name="soid[1].name" type="text" />
<input id="soid2" class="soid" name="soid[2].name" type="text" />

Javascript

$(document).ready(function() {
    $('.soid' ).autocomplete({
        source: "/myapp/soid.htm"
    });
});

タグ別


または、これらがページ上の唯一の入力である場合は、タグ セレクターを使用します。

$(document).ready(function() {
    $('input' ).autocomplete({
        source: "/myapp/soid.htm"
    });
});

作業例 http://jsfiddle.net/QqeLp/

于 2013-04-20T21:13:13.493 に答える