簡體   English   中英

如何獲取動態生成的文本框的ID?

[英]How to fetch the id of dynamically generated textboxes?

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

<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>

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

a)保留生成的元素

這要求您不使用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');

我只是將一個類添加到您的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.');
});

這是一個工作演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM