0

我正在使用以下公式:

ROW1: <input class="search" name="pos[]" value=""><input name="str[]" value="">
ROW2: <input class="search" name="pos[]" value=""><input name="str[]" value="">
ROW3: <input class="search" name="pos[]" value=""><input name="str[]" value="">

对于每一行的第一个输入,我激活了 jquery 自动完成功能:

$(".search").autocomplete(ac_new_invoice);
var ac_new_invoice = {
    source: "productsearch.php",
    minLength:1,
    select: function(data){
        var str = document.forms[0].elements["str[]"];
        str[1].value = '1.000,00';
    }
}

所以当我打字时它工作正常

 str[1].value = '1.000,00';

但我想要的是,如果我在第 1 行输入,第 1 行中的输入 str 将被更改。但是我如何获得执行自动完成的行?

提前致谢!

4

1 回答 1

0

您可以在每个元素上调用它,而不是一次将自动完成应用于所有元素。

$('.search').each(function (i) {
    var ac_new_invoice = (function (i) {
        return {
            source: "productsearch.php",
            minLength: 1,
            select: function (data) {
                var str = document.forms[0].elements["str[]"];
                str[i].value = '1.000,00';
            }
        };
    })(i);
    $(this).autocomplete(ac_new_invoice);
});

请注意,您需要(function (i){ blabla })(i)立即复制该变量i

于 2013-06-08T14:18:32.347 回答