代码之家  ›  专栏  ›  技术社区  ›  Andy Rose

如何获取调用jquery autocomplete函数的控件的ID?

  •  1
  • Andy Rose  · 技术社区  · 15 年前

    我想在几个输入框中使用jquery autocomplete插件。为了保持代码干燥,我想将autocomplete函数绑定到一个类,并在autocomplete函数中传递已将其作为额外参数调用的字段的ID。我正在努力获得调用函数的字段的ID。下面是我正在做的事情的示例代码;有人能看到问题吗?

            $(".className").autocomplete('<%=Url.Action("Method", "Controller") %>', {
                dataType: 'json',
                parse: function(data) {
                    var rows = new Array();
                    for (var i = 0; i < data.length; i++) {
                        rows[i] = { data: data[i], value: data[i], result: data[i] };
                    }
                    return rows;
                },
                formatItem: function(row) {
                    return row;
                },
                extraParams: {
                    extra: function() {
                        var Field1 = $(this).attr('id');
                        var Field2 =  $("#Field1").val();
                        var Field2 =  $("#Field2").val();
                        var Field3 =  $("#Field3").val();
                        return Field1 + "$" + Field2 + "$" + Field3 + "$" + Field4; 
                     }
                },
                delay: 40,
                autofill: true,
                selectFirst: false,
                multiple: false
            });
    
    1 回复  |  直到 15 年前
        1
  •  2
  •   queen3    15 年前

    你确定吗? 传递到ExtraParams函数?如果没有,则可以使用如下内容:

    $(".className").each(function(){
       var el = $(this);
       .....
           extra: function() {
                var Field1 = el.attr(id);
           }
    });
    

    这将允许您将每个自动完成与它自己的特定元素联系起来。