certo, basta che aggiungi l'elemento all'interno della form e al submit viene inviato come un elemento normale (dal punto di vista del browser è un elemento normale).
Ti faccio un esempio con una table:
Codice HTML
codice:
<form action=".." method="post">
<table>
<thead>
<tr>
<th>Nome</th>
<th>Cognome</th>
<th>Indirizzo</th>
<th>Città</th>
<th>Aggiungi Riga</th>
</tr>
</thead>
<tbody id="MyContent">
</tbody>
</table>
</form>
Vuota tabella
</p>
Ho messo il thead ed il tbody perché potrei essere interessato a cancellare il contenuto della tabella, ma l'intestazione la devo tenere, compreso il link per aggiungere righe.
Codice JS
codice:
//Crea una riga le celle e gli input all'interno, e poi l'aggiunge al tbody
var addRowToTbody = function(){
//Ottengo l'elemento tbody
var tbody = document.getElementById("MyContent");
//Creo un elemento tr
var tr = document.createElement("tr");
//l'aggiungo al tbody
tbody.appendChild(tr);
//Continuo con gli altri elementi
var td = document.createElement('td');
tr.appendChild(td);
var inpt = document.createElement('input');
td.appendChild(inpt);
//Setto i dati dell'input
inpt.type = "text";
//Se sei pratico di PHP o ASP (credo lo supporti) non dovresti avere problemi a capire
inpt.name = "name[]";
//Gli altri campi
td = document.createElement('td');
tr.appendChild(td);
inpt = document.createElement('input');
td.appendChild(inpt);
inpt.type = "text";
inpt.name = "lastname[]";
td = document.createElement('td');
tr.appendChild(td);
inpt = document.createElement('input');
td.appendChild(inpt);
inpt.type = "text";
inpt.name = "address[]";
td = document.createElement('td');
tr.appendChild(td);
inpt = document.createElement('input');
td.appendChild(inpt);
inpt.type = "text";
inpt.name = "city[]";
td = document.createElement('td');
tr.appendChild(td);
var a = document.createElement('a');
td.appendChild(a);
a.href = '#';
a.onclick = deleteRowFromTbody;
a.appendChild(document.createTextNode('Cancella'));
}
//Cancella la riga corrispondente al link Cancella cliccato
var deleteRowFromTbody = function(){
//Ottengo il tr dal link
var tr = this.parentNode.parentNode;
//Lo cancello
tr.parentNode.removeChild(tr);
}
//Cancella il tbody creando un altro elemento tbody e sostituendolo
var emptyTbody = function(){
var tbody = document.getElementById("MyContent");
var newTbody = document.createElement("tbody");
tbody.parentNode.replaceChild(newTbody, tbody);
newTbody.id = "MyContent";
}
//Associo le funzioni ai link
window.onload = function(){
document.getElementById("Adder").onclick = addRowToTbody;
document.getElementById("Empty").onclick = emptyTbody;
}