0
var i = 0;
var a = 3;
function addNewAnswer(tableID) {

    var table = document.getElementById(tableID);
    if(i < 10)
    {   
        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);
        var cell1 = row.insertCell(0);
        cell1.innerHTML = '<font size="2" face="Courier New"><b>Enter Answer ' + String.fromCharCode(67+i) + ':</b></font>';

        var cell2 = row.insertCell(1);
        var element1 = document.createElement("input");
        element1.size = 40;
        element1.type = "text";
        element1.name = "answer"+a;
        cell2.appendChild(element1);

        var cell3 = row.insertCell(2);
        var element2 = document.createElement("input"); 

        element2.type = "radio";
        element2.name = "radios";
        element2.value = String.fromCharCode(67+i);
        cell3.appendChild(element2);
        i++;
        a++;
    }
}

私のHTMLフォーム:

<table>                                 
<tr>
    <form method=post  name="submitform" action="verify-qedit.jsp">
        <td>
            <form method=post  name="submitform" action="verify-qedit.jsp">
                <table id="dataTable">                      
                    <tr>
                        <th colspan="3" align="left">Question</th>
                    </tr>
                </table>
            </form>     
        </td>
    </form> 
</tr>                       
</table>

フォームを送信すると、上記の JavaScript で作成されていないパラメーターしか取得できません。IE 8 標準以下の互換モードでのみ動作します。この質問を投稿する前に、何日も調べてみたので、助けてください。

4

2 に答える 2

0

これは、対象としているすべてのブラウザで機能しますか?

http://jsfiddle.net/4nbB5/1

function addNewAnswer(tableID) {
    var rowCount, row, cell1, cell2, cell3, element1, element2, char;
    var i = 0;
    var table = document.getElementById(tableID);
    while (i < 10) {
        rowCount = table.rows.length;
        row = table.insertRow(rowCount);
        cell1 = row.insertCell(0);
        char = String.fromCharCode(65 + i);
        cell1.innerHTML = '<font size="2" face="Courier New"><b>Enter Answer ' + char + ':</b></font>';

        cell2 = row.insertCell(1);
        element1 = document.createElement("input");
        element1.size = 40;
        element1.type = "text";
        element1.name = "answer" + i;
        cell2.appendChild(element1);

        cell3 = row.insertCell(2);
        element2 = document.createElement("input");

        element2.type = "radio";
        element2.name = "radios";
        element2.value = char;
        cell3.appendChild(element2);
        i++;
    }
}
addNewAnswer('foo');

私がしたことは、「a」を削除し、「i」を宣言し、「if」を while に変更し、67 を fromCharCode から 65 に変更したことだけでした。

于 2013-03-23T20:05:54.073 に答える
0

問題はjavascriptとは何の関係もありませんでした。これは、td タグの後ではなく、tr タグの後、テーブル内の間違った場所に form タグを配置していたためです。

<table>                                 
<tr>
    <td>
        <form method=post  name="submitform" action="verify-qedit.jsp">
            <table id="dataTable">                      
                <tr>
                    <th colspan="3" align="left">Question</th>
                </tr>
            </table>
        </form>     
    </td>
</tr>                       
</table>
于 2014-05-21T12:13:27.560 に答える