我有一个文本区域,它调用一个 jQuery 函数来自动完成字段。 但是我的文本区域 ID 是动态创建的,我必须在单击文本区域时传递这些 ID。
但是 jQuery 函数中的变量在这里不起作用是我的代码
function SearchText(id) {
var TxtboxId ="";
TxtboxId = "#IdPrefix_" + id;
$(TxtboxId).autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "demo.aspx/GetAutoCompletfunc",
data:'{"key":"' + request.term +'"}',
dataType: "json",
async: false,
success: function(data) {
response(data.d);
},
error: function(result) {
alert("Error");
}
});
}
});
}
通过文本区域的onclick事件调用该函数。此代码被添加到一个循环中以动态创建文本区域。这里调用 SearchText 函数。
ListArr[++j] = '<td width="20%" ><textarea id="IdPrefix_' + id + '" type="textbox" onclick = "javascript:SearchText( ' + id + ' );" maxlength="300"
但它在 $(TxtboxId).autocomplete
中不起作用
有人知道解决办法吗?请回答。
最佳答案
您可以选择元素类型并从事件中获取 id
在此处查看演示 JS Fiddle
var sourceStub = [
{label: "bat", value: "batman"},
{label: "cat", value: "catwomen"},
{label: "rat", value: "mighty mouse"},
{label: "dog", value: "lassie"}
];
$("textarea").keyup(function(e) {
$("#" + e.target.id).autocomplete({
source: sourceStub
});
});
<table>
<tr><td width="20%" >
<textarea id="IdPrefix_1" type="textbox"></textarea>
</td></tr>
<tr><td width="20%" >
<textarea id="IdPrefix_2" type="textbox"></textarea>
</td></tr>
</table>
或者如果你有文本区域,你不想参与自动完成的乐趣,你可以创建一个类
.autoCompleteMe {}
并将该类添加到您要在其上运行自动完成的每个元素
<textarea class="autoCompleteMe" id="IdPrefix_1" type="textbox"></textarea>
然后选择那个类
$(".autoCompleteMe").keyup(...);
关于javascript - 如何在自动完成文本区域的 Jquery 函数中将变量分配为 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29405077/