Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Formularze w JavaScript
Forum PHP.pl > Forum > Po stronie przeglądarki
wiruswww
Poraz kolejny mam problem z formularzami w JavaScript. otóż gdy część formularza generowana jest za pomocą JS pole dodane przez skrypt JS nie są wysyłane, np mamy sobie form, wewnątrz tabele i różne div'y, to gdy skyptem dodaje pola zachowuje się tak jak by te pola nie należały do oformularza, np: (bardzo skrótowo)

<form id='formularz'>
<table>
<tr><td><input name='pole' /></td></tr>
<tr><td><div id="pola_form"></div></td></tr>
</table>
</form>

$('#pola_form').append('<div><input name='inne_pole' /></div>');

wówczas #inne_pole poprawnie wyświetla się na stronie jest jest ignorowane podczas wysyłania forma (button submit). W firebug i webdeveloper w opcjach wyświetlania pól formularza nie zaznacza pola wstawionego za pomocą JavaScript (jQuery). W firefox w zakładce HTML powyższy kod wyglądał by następująco:

<form id='formularz'></form>
<table>
<tr><td><input name='pole' /></td></tr>
<tr><td><div id="pola_form"><div><input name='inne_pole' /></div></div></td></tr>
</table>

Jeżeli pole dodawane jest bezpośrednio pod formularz to jest ok:

$('#formularz').append('<div><input name='inne_pole' /></div>'); jednak w ten sposób nie mogę tego zrobić.

Macie jakieś pomysły jak dynamicznie dodawać pola aby działało ok?

Pozdrawiam
Mateusz
AdIoS_Neo
Cytat(wiruswww @ 31.08.2010, 14:15:02 ) *
<form id='formularz'></form>
<table>
<tr><td><input name='pole' /></td></tr>
<tr><td><div id="pola_form"><div><input name='inne_pole' /></div></div></td></tr>
</table>


To jest błąd tylko tutaj czy na stronie też próbujesz wysłać pusty formularz <form id='formularz'></form> ?
wiruswww
to nie błąd, to fragment z tego co jest w Firebug w zakładce HTML, dla mnie też to dziwnie wygląda ale tak jest, wysyła cały formularz z wyjątkiem pól dodanych przez JS, czyli wysyła tylko pola "statyczne"
AdIoS_Neo
Pokaż co masz w kodzie a nie "co jest w Firebug" -.-' chyba, że to nie Twoja strony tylko ją próbujesz "zhackować".
wiiir
masz blad w append
Kod
// ty masz
$('#pola_form').append('<div><input name='inne_pole' /></div>');

//sprobuj  tak
$('#pola_form').append('<div><input name=\'inne_pole\' /></div>');


cudzyslow konczy i rozpoczyna stringa w js.. wiec ty go zaczynasz i konczysz na name.. pozniej jak przegladarka to parsuje widzi ze cos jest nie tak i dlatego masz pusty formularz.

to tak jakbys chcial zrobic

Kod
alert("Bardzo "glupi" blad ktory tez czasem popelniam :)");

wiruswww
[quote name='wiiir' date='1.09.2010, 08:08:42 ' post='785148']
masz blad w append
[code]

Być może, ale nie jestem pewien co do tego, nie jestem w stanie teraz tego sprawdzić. Ale wydaje mi się że IDE (Netbeans) zrociłby mi na to uwagę. Problem ten mam nie pierwszy raz, w innym projekcie rozwiązałem go generując wszystkie pola statycznie ze stylem display:none a potem w JS je odkrywałem, niestety teraz nie mogę użyć tego rozwiązania.

Sądzicie że od strony logicznej to jest ok? Czy na działanie ma jakiś wpływ że pola input dodaje z różnnymi dekoracjami (div) i nie są dodawane bezpośrednio pod form tylko do td które oczywiście jest w form?
wiiir
Logicznie wygalda to dobrze.. popraw cydzyslowia i bedzie ok
wiruswww
cudzysłowia są ok

$('#dodawanie_zalacznikow').append('<input type="file" name="zalaczniki[]" class="zalaczniki_dodaj" maxlength="255">');

problem rozwiązany: rzecz banalna - tagi html się zazębiały smile.gif
Tak to jest kontynuować po kimś stary projekt.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.