2015-04-02 19 views
1

我有一个文本区域,它调用一个用于自动填充字段的jQuery函数。 但是我的textArea ID是动态创建的,当我点击文本区域时,我必须通过这些ID。如何在自动填充文本区域的Jquery函数中为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

任何人都知道的工作的任何解决方案?请回答。

+0

检查您的浏览器控制台以查看是否有任何错误? – Mairaj 2015-04-02 04:47:17

+0

您是否尝试过'console.log()'ging'TxtboxId'来查看它是否具有预期值? – JLRishe 2015-04-02 04:54:02

+0

值正常,但它不考虑为ID – 2015-04-02 05:04:02

回答

1

您可以选择的元素类型,并从事件而得到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>

或者如果你有textareas你不想参加自动完成的乐趣,你可以创建一个类

.autoCompleteMe {} 

和类添加到要在

<textarea class="autoCompleteMe" id="IdPrefix_1" type="textbox"></textarea> 

运行自动完成,并选择类中的每个元素,而不是

$(".autoCompleteMe").keyup(...); 
+0

它也工作正常。但我的代码是正确的,只有一件事我改变了。它给出下面 – 2015-04-02 11:05:04

+0

无论如何谢谢.. :) – 2015-04-02 11:08:03

0
更好

我们可以添加属性的文本框中

像下面的方式。把一个类的属性为 “CKEditor的”,并做以下

var TxtboxId = $(this).find('.ckeditor').attr("id"); 
+0

但id是,'id =“IdPrefix_'+ id”'我再次必须在.attr(变量)中添加该变量@ASADUL – 2015-04-02 05:06:51

1

的TxtboxId只有分裂,那就是它不能隐含地添加'#' 与它

 TxtboxId = "IdPrefix_" + id; 
     $("#" + TxtboxId).autocomplete({ 
      -------------}); 
相关问题