[ w3bl0rd @ 18.07.2008. 15:50 ] @
dakle ovo se nalazi u headu

Code:
 <script type="text/javascript">
  function dodaj()
  {
  document.getElementById('linkovi').innerHTML+='text: <input type="text" name="txt[]" /> link: <input type="text" name="link[]" /> <br />';
  }
  </script>


Code:

        <form name="links" method="post" action="links.php">
        <div id="linkovi">
        text: <input type="text" name="txt[]" /> link: <input type="text" name="link[]" /> <br />
        </div><hr />
        IME BLOKA: <input type="text" name="ime"  /><br />
        <hr />
        <input type="button" name="add" onclick="dodaj();" value="dodaj još" />
        <input type="Submit" name="submit" value="Spremaj!" />
        </form>


ovo sam ovako isprogramirao sve lijepo dobro šljaka ali nakon svakog dodavanja novih polja sve se prazni znači svi text inputi koje je neko popunio se isprazne... meni to nikako ne odgovara... zašto je to tako?
[ Miroslav Ćurčić @ 18.07.2008. 22:46 ] @
Pokaži nam kako dodaješ?
[ jazzieDev @ 20.07.2008. 12:04 ] @
Izbegavaj innerHTML += u takvim stvarima (dodavanje polja za formu). U tom slucaju browser sadrzaj diva PONOVO ispuniti njegovim innerHTMLom i na to dodati polja koja si uneo, a innerHTML diva takav kakav jeste ne ukljucuje i values polja forme, jer su ona naknadno unesena, sto rezultira resetovanjem values-a. Ako hoces da zadrzis values, treba da kreiras node i da ga ubacis na mesto koje ti odgovara:

Code:
var input = document.createElement('input');
if (input.setAttribute){
    input.setAttribute('name', 'txt[]');
    input.setAttribute('type', 'text');
} else {
    input.type = 'text';
    input.name = 'txt[]';
}
input = document.getElementById('linkovi').appendChild(input); // ako neces input na kraju diva pogledaj insertBefore


ovo takodje moze da se postigne kloniranjem nokog postojeceg fielda (ako je istih atributa kao ovi sto se dodaju), pa brisanjem njihovih values-a (ako postoje) i dodavanjem kao u kodu iznad (appendChild).
[ w3bl0rd @ 22.07.2008. 20:07 ] @
hvala hvala :)