2011-04-22 99 views
0

如何使用jquery獲取動態生成的文本框的id?我需要爲相應的文本框觸發TextChanged事件。代碼後面的文本框沒有方法引用。如何在代碼隱藏中引用該事件時引用任何方法。有人請幫忙。我不太瞭解jquery。我使用的整個腳本如下:如何獲取動態生成的文本框的ID?

<script type="text/javascript"> 

$(init); 

function init() 
{ 
    $('#test').droppable(// Div Control 
    { 
     drop: handleDropEvent 
    }); 

    $('a').each(function(idx, item) { 
     $(item).draggable({ cursor: 'move', helper: 'clone' }) 
    }); 
} 

$(function() { 
    $("#draggable").draggable(); //Nothing to do with this div 
}); 

function handleDropEvent(event, ui) 
{ 
    var draggable = ui.draggable; 
    document.getElementById('test').innerHTML += addColumn(draggable.attr('text')) + '<br>'; 
} 

function addColumn(column) 
{ 
    var iHtml; 
    // This code will generate a checkbox and a textbox. I need to fire the event of thus generated textboxes. 
    iHtml = '<div id="dv' + column + '" width="100px;" height="20px;" padding: "0.5em;">&nbsp;' + '<span title="ToolTipText">' + '<input type="checkbox" id="cb' + column + '" value="' + column + '" /> <label for="cb' + column + '">' + column + '</label></span><input type="text" runat="server" id="aln' + column + '">&nbsp;</div>'; 

    return iHtml; 
} 
</script> 
+0

什麼是你生成動態創建的複選框? – ahsteele 2011-04-22 02:04:29

+0

複選框將保留我拖動文本的標籤。 – NewBie 2011-04-22 02:06:59

回答

3

有兩種方法:保留生成的元素,或生成新元素時生成ID。

一)保持生成的元素

這就要求你不使用innerHTML,但創建元素(document.createElement,或用jQuery的$),然後就可以直接使用元素(無需再通過ID調用它)。例如,使用jQuery:

var container = $('#container'); 
var myDiv = $('<div id="myDiv"/>'); 
var myCheck = $('<input type="checkbox"/>'); 
myDiv.append(myCheck); 
container.append(myDiv); 

B)生成的ID

container.innerHTML = '<div id="myDiv"><input type="checkbox" id="myCheck"/></div>'; 
// and after this you can get them by ID: 
var myCheck = $('#myCheck'); 
+0

我在拖動文本時得到了[對象對象]的結果。 – NewBie 2011-04-22 02:30:04

+0

如何從複選框集合中選中複選框的標識,如果我這樣做? – NewBie 2011-04-22 03:30:42

+0

您可以執行一個循環,並將結果元素推送到數組或對象(字典)中。 – Amadan 2011-04-22 16:05:32

3

我只想補充一類在IHTML文本框,然後使用.live()事件

這個替換您的IHTML

iHtml = '<div id="dv' + column + '" width="100px;" height="20px;" padding: "0.5em;">&nbsp;' + '<span title="ToolTipText">' + '<input type="checkbox" id="cb' + column + '" value="' + column + '" /> <label for="cb' + column + '">' + column + '</label></span><input class="myclass" type="text" runat="server" id="aln' + column + '">&nbsp;</div>'; 

然後添加現場活動

$('.myclass').live('change', function() { 
    alert(' Live handler called.'); 
}); 

這裏是一個WORKING DEMO

+0

我如何爲div集合聲明一個類? – NewBie 2011-04-22 02:17:24

+0

我試圖顯示一個消息框來檢查這個實況事件是否被調用。但它似乎不工作。是否有任何參數要傳遞給函數()? – NewBie 2011-04-22 02:56:12

+0

@Amadan我錯過了鍵入功能我固定它,並提出了一個小提琴 – mcgrailm 2011-04-22 03:11:41