|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jul 2010
Messaggi: 30
|
[Javascript] Problema tabella dinamica dentro form
Salve a tutti, ho un problema che spero di riuscire a risolvere qui
Premetto che sono alle prime armi con l'uso di javascript. Praticamente ho a che fare con una form avente degli input di tipo testo e di tipo radio. Questi ultimi, a secondo del loro stato modificano, tramite script (javascript) la tabella, aggiungendo o modificando alcune righe. Sembrava funzionare tutto fino a quando non ho inserito la tag <form ....> prima e dopo la tabella (</form> ). La tabella non è piu dinamica bensì resta statica e non vengono apportate piu modifiche ad ogni cambiamento di input "radio". L'errore che il debug di Firefox mi riporta è "nomefunzione" is not a function. Spero di essermi espresso bene. in attesa di una vostra riposta vi ringrazio anticipatamente. Saluti. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Può darsi che lo script utilizzi dei riferimenti assoluti che non sono più validi da quando hai inserito la tabella dentro un altro tag. Dovresti postare il codice per avere un aiuto più mirato.
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jul 2010
Messaggi: 30
|
Codice HTML:
<body> <!-- <form id="assicurazione" action="http://www.miosito.com/inviamail.php" method="POST"> --> <table width="600" border="2" id="tabella"> <tr> <td>Il contraente è</td> <td> <input type="radio" name="contraente" id="fis" value="" checked="checked" onclick="javascript:contraente(false)" /> Persona fisica <input type="radio" name="contraente" id="giu" value="" onclick="javascript:contraente(true)" />Persona giuridica </td> </tr> <tr> <td>Nome e Cognome</td> <td><input type="text" name="nome" id="nom" value="" /> </td> </tr> <tr> <td>Anno di nascita(aaaa)</td> <td><input type="text" name="anno" id="ann" value="" /></td> </tr> <tr> <td>Comune di nascita</td> <td><input type="text" name="comune" id="com" value="" /></td> </tr> <tr> <td>Comune di residenza</td> <td><input type="text" name="residenza" id="res" value="" /></td> </tr> <tr> <td>E-mail</td> <td><input type="text" name="mail" id="mail" value="" /></td> </tr> <tr> <td>Anno conseguimento patente(aaaa)</td> <td><input type="text" name="patente" id="ap" value="" /></td> </tr> <tr> <td>Hai già comprato l'auto?</td> <td> <input type="radio" name="auto" id="si" value="" checked="checked" onclick="javascript:auto(false)"/> Si <input type="radio" name="auto" id="no" value="" onclick="javascript:auto(true)" />No </td> </tr> <tr> <td>Targa</td> <td><input type="text" name="targa" id="tr" value="" /></td> </tr> <tr> <td>Classe di merito CU di assegnazione</td> <td><select name="classe_merito" id="merito"> <option value="">Seleziona una voce...</option> <option value="1X" >1 (da almeno un anno)</option> <option value="1" >1 (da meno di un anno)</option> <option value="2" >2</option> <option value="3" >3</option> <option value="4" >4</option> <option value="5" >5</option> <option value="6" >6</option> <option value="7" >7</option> <option value="8" >8</option> <option value="9" >9</option> <option value="10">10</option> <option value="11">11</option> <option value="12">12</option> <option value="13">13</option> <option value="14">14</option> <option value="15">15</option> <option value="16">16</option> <option value="17">17</option> <option value="18">18</option> </select></td> </tr> <tr> <td>Hai già usufruito della legge Bersani?</td> <td> <input type="radio" name="legge" id="si2" value="" checked="checked" /> Si <input type="radio" name="legge" id="no2" value="" />No </td> </tr> <tr> <td colspan="2" align="center"> <input type="Submit" value="Invia Dati" /> </td> </tr> </table> <!-- </form> --> </body> |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
Non hai postato il codice js.
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jul 2010
Messaggi: 30
|
Codice HTML:
<script language="javascript"> var bool=new Boolean(); function contraente(bool) { var tab=document.getElementById('tabella'); if(bool) { tab.rows[1].cells[0].innerHTML="Ragione Sociale"; tab.rows[2].cells[0].innerHTML="Partiva IVA"; tab.rows[3].cells[0].innerHTML="Tipologia azienda"; tab.rows[3].cells[1].innerHTML=<select name="azienda" id="azienda" ><option value="" >Scegli il tipo di azienda</option><option value="1" >Società in accomandita per azioni</option><option value="2" >Società in accomandita semplice</option><option value="3" >Società cooperativa a responsabilita limitata</option><option value="4" >Società nome collettivo</option><option value="5" >Società per azioni</option><option value="6" >Società a responsabilita limitata</option><option value="7" >Società semplice</option><option value="8" >Società cooperativa a responsabilita illimitata</option><option value="9" >Società cooperativa a mutualità prevalente</option> </select> tab.rows[4].cells[0].innerHTML="Comune"; tab.rows[5].cells[0].innerHTML="Indirizzo"; } else { tab.rows[1].cells[0].innerHTML="Nome e Cognome"; tab.rows[2].cells[0].innerHTML="Anno di nascita(aaaa)"; tab.rows[3].cells[0].innerHTML="Comune di nascita"; tab.rows[3].cells[1].innerHTML='<input type="text" name="residenza" id="res" value="" />'; } } function auto(bool) { var tab=document.getElementById('tabella'); var k; if(bool && tab.rows.length==12) { for(var i=0; i<3; i++){ k=tab.insertRow(9+i); for(var j=0; j<2; j++) k.insertCell(-1); } tab.rows[8].cells[0].innerHTML="Marca"; tab.rows[9].cells[0].innerHTML="Modello"; tab.rows[9].cells[1].innerHTML='<input type="text" name="modello" id="nmod" value="" />'; tab.rows[10].cells[0].innerHTML="Km percorsi in un anno"; tab.rows[10].cells[1].innerHTML='<input type="text" name="km" id="km" value="10000" />'; tab.rows[11].cells[0].innerHTML="Gancio di traino"; tab.rows[11].cells[1].innerHTML='<input type="radio" name="gancio" id="siz" checked="checked"/>Si<input type="radio" name="gancio" id="noz" />No' } else if(!bool && tab.rows.length>12) { for(var i=0; i<3; i++){ tab.deleteRow(9); tab.rows[8].cells[0].innerHTML="Targa";} } } </script> |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2774
|
L'inserimento del form causa un conflitto di nomi quando chiami le funzioni contraente e auto perché sono anche nomi di campi del form. La soluzione è cambiare nome alle funzioni o ai campi.
|
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jul 2010
Messaggi: 30
|
Che errore niubbo. Grazie mille davvero sei stato molto disponibile e celere nel risolvere il mio problema.
A presto ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:20.