如何获取调用jquery自动完成函数的控件的id?

时间:2010-01-14 14:17:07

标签: jquery asp.net-mvc autocomplete

我想在几个输入框中使用jquery自动完成插件。为了保持我的代码DRY,我想将自动完成功能绑定到一个类,并在自动完成功能中传递已将其称为额外参数的字段的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 个答案:

答案 0 :(得分:2)

您确定将传递给extraParams函数吗?如果没有,那么你可以使用类似的东西:

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

这样您就可以将每个自动完成功能绑定到自己的特定元素。