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 Форма:Форма в таблице содержит динамически создаваемые входные параметры, которые не передаются в IE 9 и 10

<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 и ниже. Пожалуйста, помогите, потому что я провел дни, пытаясь выяснить, прежде чем публиковать этот вопрос.

+1

Что такое i? в вашем состоянии: if (i <10) –

+0

Согласен с предыдущим комментарием о том, что переменная 'i' выглядит очень подозрительной - это может быть очень легко причиной проблемы, но мы, конечно, не можем быть уверены, не зная, где она находится набор и то, для чего он используется. Я бы порекомендовал не использовать глобальный таким образом в любом случае - вам было бы намного лучше передать его в функцию в качестве параметра, а затем использовать 'return', чтобы снова вернуть его, если это необходимо. – Spudley

+0

Отключить тему: Я заметил, что вы используете тег '' в приведенном выше коде. Обратите внимание: '' устарел; его использование не рекомендуется в современных браузерах. Для указания шрифта рекомендуется использовать стили CSS. – Spudley

ответ

0

Проблема не имеет ничего общего с javascript. Это произошло потому, что я помещал тег формы в неправильное место внутри таблицы после тэга тэга вместо тэга 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> 
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'); 

Все, что я делал, было удалить «а», и объявить «я», изменение «если» в то время, изменилось 67 в fromCharCode 65 .. Посмотрел быть то, что вы, возможно, хотели в какой-то момент я остановился.

+0

Я пробовал это, но мне нужно, чтобы я был объявлен вне функции, а while - когда это когда при вызове функции новое текстовое поле создается, если i> = 10. Но с использованием IE9 я все равно получаю нулевые значения для request.getParameter (ответ 3) и так далее. Первые два текстовых поля не являются динамическими, так как требуется не менее двух полей ответа. –

+0

Спасибо, что помогли мне. Как только вы очистили javascript и подтвердили, что функция в порядке, это позволило мне сосредоточиться на том, что еще может вызвать проблему, которая была местом формы. –

Смежные вопросы