locked
Event not firing on a dynaically added event RRS feed

  • Question

  • I am adding a table row dynamcally and adding an HTML select control to it the onChange event does fire. I'm fairly new to javascript and Im wondering if it is something I've done wrong. here is the code snippet I'm using:

    var table = document.getElementById("workTable")
    if (!table)
        alert("can't find table");

    var rowCount = table.rows.length;
    var row = table.insertRow(rowCount);

    var cell1 = row.insertCell(0);
    cell1.setAttribute("class", "'leftSideNavFirstColumn'");
                      
    var newDD = document.createElement("Select");
                     
    newDD.setAttribute("id", "docTypes_" + rowCount);
    newDD.setAttribute("name", "docTypes_" + rowCount);
    newDD.setAttribute("runat", "server");
    newDD.setAttribute("onchange", "AddSelectedText('" + newDD.id + "')");                    

    var selectObj = document.

    getElementById("first_DocTypes");
                        
    for (var i = 0; i < selectObj.options.length; i++) {
        newDD.options[i] = new Option(selectObj.options[i].text, (selectObj.options[i].value));
    }

    cell1.appendChild(newDD);

    Thanks!

    Mike

                

    Monday, November 12, 2012 3:42 PM

Answers

  • Hi,

    Please refer to the example as follow:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"  "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>Untitled Document</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta http-equiv="Content-Style-Type" content="text/css">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <style type="text/css">
    .mytable {
    border:1px solid #000000;
    border-collapse:collapse;
    width:200px;
    }
    .mytable td{
    background:#cccccc;
    border:1px solid #000000;
    }
    </style>
    
    <script type="text/javascript">
        onload = function () {
            var nrCols = 2;
            var maxRows = 4;
            var nrRows = maxRows + 1;
            while (nrRows > maxRows) {
                nrRows = Number(prompt('How many rows? Maximum ' + maxRows + ' allowed.', ''));
            }
            var root = document.getElementById('mydiv');
            var tab = document.createElement('table');
            tab.className = "mytable";
            var tbo = document.createElement('tbody');
            var row, cell;
            for (var i = 0; i < nrRows; i++) {
                row = document.createElement('tr');
                for (var j = 0; j < nrCols; j++) {
                    cell = document.createElement('td');
                    cell.appendChild(document.createTextNode(i + ' ' + j))
                    row.appendChild(cell);
                }
                tbo.appendChild(row);
            }
            tab.appendChild(tbo);
            root.appendChild(tab);
        }
    </script>
    </head>
    <body>
    <div id="mydiv"></div>
    </body>
    </html>


    Please mark the replies as answers if they help or unmark if not.
    If you have any feedback about my replies, please contact msdnmg@microsoft.com
    Microsoft One Code Framework

    • Marked as answer by Song Tian Friday, November 16, 2012 9:07 AM
    Tuesday, November 13, 2012 6:05 AM