0

HTML テーブルがあり、javascript を使用してそのテーブルに新しい行を追加できます。テーブルの各セルに対して onchange イベントを使用して、javascript (Ajax) 関数を呼び出したいと考えています。`

<script type="text/javascript" src="nextTest.js"></script>
    <SCRIPT language="javascript">
            function addRow(tableID) {

            var table = document.getElementById(tableID);

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

            var cell1 = row.insertCell(0);
            cell1.innerHTML = rowCount + 1;

            var cell2 = row.insertCell(1);
            var element2 = document.createElement("input");
            element2.type = "text";
            element2.name = "txtbox[]";
        element2.onchange = nexttest();
            cell2.appendChild(element2);

    }

    </SCRIPT>

</HEAD>
<body>
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

<TABLE id="dataTable" width="350px" border="1">
    <TR>
        <TD> 1 </TD>
        <TD> <INPUT type="text" /> </TD>
    </TR>
</TABLE>

</body>
</html>`

ボタンを押すと、新しい行が追加され、onchange イベントが発生します。私がやりたいことは、誰かがそれらの新しいセルにデータを入力したときに、onchange イベントを発生させたいということです。イベントは「nextTest」と呼ばれ、外部ファイルに保存されます。

新しい行を挿入するとイベントが発生しますが、セルの 1 つを更新しても何も起こりません。私は何を間違っていますか?

前もって感謝します

4

2 に答える 2

1

関数呼び出しではなく、関数を割り当てる必要があります (呼び出された関数が別の関数を返す場合を除く)。

括弧を省略します。

element2.onchange = nexttest;
于 2013-05-30T09:06:57.693 に答える
0
    function nexttest(evt){
        alert(evt.target.value);
    }

    function addRow (tableID) {

        var table = document.getElementById(tableID);

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

        var cell1 = row.insertCell(0);
        cell1.innerHTML = rowCount + 1;

        var cell2 = row.insertCell(1);
        var element2 = document.createElement("input");
        element2.type = "text";
        element2.name = "txtbox[]";
        element2.onchange = nexttest; // give a valid function identifier here .
        cell2.appendChild(element2);

    }

http://jsbin.com/iropam/2/edit

于 2013-05-30T09:14:34.323 に答える