表中的表单包含未在IE 9和10中传递的动态创建的输入参数

时间:2013-03-23 19:51:33

标签: javascript forms dom internet-explorer-9 parameter-passing

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标准及以下。请提供帮助,因为我在发布此问题之前花了几天时间试图找出答案。

2 个答案:

答案 0 :(得分: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,将fromCharCode中的67更改为65 ..看起来是你可能想要的东西,所以我停止了。

答案 1 :(得分:0)

这个问题与javascript无关。这是因为我将表格标签放在tr标签之后的表格中的错误位置而不是td标签之后。

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