2015-04-02 16 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({ 
      -------------}); 
相關問題