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?简而言之,我需要一个适用于所有文本字段的查询。

谢谢

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 回答