1
我想在幾個輸入框中使用jquery自動完成插件。爲了保持我的代碼DRY,我想將自動完成功能綁定到類,並在自動完成功能中傳遞已將其稱爲額外參數的字段的ID。我所掙扎的是獲得調用函數的字段的id。下面是我正在做的代碼示例;任何人都可以看到問題嗎?如何獲取調用jquery自動填充函數的控件的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
});
@ queen3 - 我不確定(this)是否傳入extraParams函數。看看你的例子,我看不出如何將它與自動完成功能(我是一個jQuery新手)。你能提供更多的細節嗎? – 2010-01-14 15:47:28
在「var el = $(this)」行上,您_fix_變量。現在,「el」將可用於所有內部函數,而不管它們何時被調用。因此,您可以訪問您的.autocomplete所附的元素。 – queen3 2010-01-14 15:56:15
@ queen3 - 非常好,我剛剛添加了el.autocomplete(....部分在變量實例下方,它的工作方式與預期的一樣。感謝您的幫助。 – 2010-01-14 16:24:26