javascript - 如何在自动完成文本区域的 Jquery 函数中将变量分配为 Id

标签 javascript jquery asp.net

我有一个文本区域,它调用一个 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/

相关文章:

javascript - 无法让 ClientContext.executeQuery() 在 javascript 中工作

javascript - 如何在每个页面的 </html> magento 之前添加文件

javascript - url 上的 AJAX 返回文件或 JSON 响应?

javascript - 如何在不向上滚动的情况下在视口(viewport)中显示文本?

php - 使用 jquery 将值从文本框传递给 php 不起作用,请帮忙

asp.net - Ajax htmlEditorExtender - 无法识别的元素清理程序

javascript - Date().getTime() JavaScript 转换为 php?

javascript - 我的 Promise 链中的 Promise 被拒绝 "reject is not defined"

c# - 根据 asp.net 中的复选框列表中的选定选项制作相对字符串

c# - ASP.NET 成员资格 : how to set the user as logged in