Mushu, это ж тема в продолжение твоей темы с клонирование строк таблицы... так что вот я написал вот такую вот сложную функцию, которая обходит все ячейки и проверяет их и записывает данные в объект, а потом еще обходит этот объект и создает таблицу с данными.
| Код | function checkTable(tableID) { table=document.getElementById(tableID); if(!table) { alert("таблицы нет"); return; } answers=new Array(); for(y=0;y<table.rows.length-1;y++){ cellAnswers=new Array(); for(x=0;x<table.rows[y+1].cells.length;x++){ selects=table.rows[y+1].cells[x].getElementsByTagName("SELECT"); selectsAnswers=new Array(); for(item=0;item<selects.length;item++){ selectsAnswers[item]=selects[item].options[selects[item].selectedIndex].value; } inputs=table.rows[y+1].cells[x].getElementsByTagName("INPUT"); inputsAnswers=new Array(); for(item=0;item<inputs.length;item++){ inputsAnswers[item]=inputs[item].value; } cellAnswers[x]=new Array(selectsAnswers,inputsAnswers); //alert(cellAnswers[x]); } answers[y]=new Array(cellAnswers); } table=document.createElement("TABLE"); tbody=document.createElement("TBODY"); for(y=0;y<answers.length;y++){ row=document.createElement("TR"); rows=answers[y]; for(x=0;x<rows.length;x++){ tds=rows[x]; for(item=0;item<tds.length;item++){ td=document.createElement("TD"); td.style.padding="5px;" td.style.border="solid 1px black"; itemValues=tds[item]; for(itemValue=0;itemValue<itemValues.length;itemValue++){ td.appendChild(document.createTextNode(itemValue?"INPUTS:":"SELECT:")) for(child=0;child<itemValues[itemValue].length;child++) td.appendChild(document.createTextNode((child?", ":"")+itemValues[itemValue][child])); td.appendChild(document.createElement("BR")); } row.appendChild(td); } } tbody.appendChild(row); } table.appendChild(tbody); document.getElementsByTagName("BODY")[0].appendChild(table); }
|
Вот собственно рабочий пример
| Код | <html> <head> <script type="text/javascript"> function checkTable(tableID) { table=document.getElementById(tableID); if(!table) { alert("таблицы нет"); return; } answers=new Array(); for(y=0;y<table.rows.length-1;y++){ cellAnswers=new Array(); for(x=0;x<table.rows[y+1].cells.length;x++){ selects=table.rows[y+1].cells[x].getElementsByTagName("SELECT"); selectsAnswers=new Array(); for(item=0;item<selects.length;item++){ selectsAnswers[item]=selects[item].options[selects[item].selectedIndex].value; } inputs=table.rows[y+1].cells[x].getElementsByTagName("INPUT"); inputsAnswers=new Array(); for(item=0;item<inputs.length;item++){ inputsAnswers[item]=inputs[item].value; } cellAnswers[x]=new Array(selectsAnswers,inputsAnswers); //alert(cellAnswers[x]); } answers[y]=new Array(cellAnswers); } table=document.createElement("TABLE"); tbody=document.createElement("TBODY"); for(y=0;y<answers.length;y++){ row=document.createElement("TR"); rows=answers[y]; for(x=0;x<rows.length;x++){ tds=rows[x]; for(item=0;item<tds.length;item++){ td=document.createElement("TD"); td.style.padding="5px;" td.style.border="solid 1px black"; itemValues=tds[item]; for(itemValue=0;itemValue<itemValues.length;itemValue++){ td.appendChild(document.createTextNode(itemValue?"INPUTS:":"SELECT:")) for(child=0;child<itemValues[itemValue].length;child++) td.appendChild(document.createTextNode((child?", ":"")+itemValues[itemValue][child])); td.appendChild(document.createElement("BR")); } row.appendChild(td); } } tbody.appendChild(row); } table.appendChild(tbody); document.getElementsByTagName("BODY")[0].appendChild(table); } </script> </head> <body> <table border="1" id = "tab1"> <tr> <td>Тип</td> <td>Название</td> <td>Количество </td> </tr> <tr> <td> <select> <option value="0"></option> <option value="P">Рамашка</option> <option value="O">Сирень</option> </select> </td> <td><input type="" id="name"/></td> <td><input type="" id="count"/><input type="text" /></td> </tr> <tr> <td> <select> <option value="0"></option> <option value="P">Рамашка</option> <option value="O">Сирень</option> </select> </td> <td><input type="" id="name"/></td> <td><input type="" id="count"/></td> </tr> </table>
<input type="button" onclick="checkTable('tab1')" />
</body> </html>
|
|