Pobieranie wszystkich elementów formy

Pobieranie wszystkich elementów formy
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam,
wcześniej pracowałem na innych bibliotekach niż jQuery, a teraz przerzuciłem się na nią i mam pewien problem.
Mam formularz (przykład - specjalnie podałem wartości w value):

Kopiuj
			 <form id="proba">
			  <table>
				<tr>
				  <td><input type="text" name="login" value="login" /></td>
				  <td><input type="password" name="pass" value="pass" /></td>
				</tr>
				<tr>
				  <td><input type="hidden" name="ukryty" value="hidden" /></td>
				  <td><input type="button" name="przycisk" value="button" /></td>
				</tr>
				<tr>
				  <td><input type="checkbox" name="klik" value="y" /></td>
				  <td>
				  	  <input type="radio" name="sel1" value="y" />
				  	  <input type="radio" name="sel2" value="y" />
				  	  <input type="radio" name="sel3" value="y" />
				  </td>
				</tr>
			  </table>
			 </form>

Chcę pobrać atrybuty name i value (tylko wypełnione lub zaznaczone), ale zawierające się w formie !

Próbowałem na różne sposoby:

  • $("form#proba").each()
  • $("form#proba > *")
  • $("form#proba > input")
  • $("form#proba > :input")
  • .children()

Jakbym nie robił to nigdy nie chce mi pobrać tych inputów. Bardzo proszę o pomoc, jak pobrać wszystkie (lub określone) elementy z nadrzędnego elementu.

BS
  • Rejestracja: dni
  • Ostatnio: dni
0

Niepotrzebnie wstawiasz tam te dzióbki >. One mówią, że chodzi Ci o elementy input BEZPOŚREDNIO w formularzu #proba. A Ty nie masz tych inputów bezpośrednio w formularzu, tylko jeszcze wewnątrz tabeli. Pomijając fakt, że użycie tabelek w takich wypadkach jest prawie zawsze złe i że powinieneś nauczyć się CSS-a, wywal dzióbek i szukaj po selektorze form#proba input. Nie wiem co to znaczy, że chcesz "pobrać" atrybuty name i value. Wpakować je do tablicy? Mapy? Może chcesz je przetworzyć za pomocą .each()...

  • Rejestracja: dni
  • Ostatnio: dni
0

Chcę przetworzyć to za pomocą np: .each()

Specjalnie musi być tabela, chodzi o takie działanie jak w mintAjax (http://mintajax.com.pl/Przewodnik/Obiekt-Request/ - funkcja SendForm).

Napisałeś

Kopiuj
form#proba input

, ale to tyczy się chyba tylko elementów bezpośrednio wewnątrz <form>

Możesz podpowiedzieć jak wyszukać wszystkie elementy input wewnątrz form, ale nie zważając jakiemu elementowi podlegają (chodzi o uniwersalność).

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0

No to właśnie jest odwrotnie jak myślisz:
form input wybierze inputy nieważne jak głęboko w formie
form>input wybierze inputy, które są bezpośrednimi "dziećmi" elementu form.

  • Rejestracja: dni
  • Ostatnio: dni
0

Zrobiłem dla sprawdzenia (jeszcze raz):

Kopiuj
$("form#proba input").each(function{ alert("mam"); });

i nadal nic.

dzek69
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Rzeszów
0

Ta? (pomijając, że masz brak () po function przez które kod się nie wykonuje)

http://jsbin.com/irulac/edit#javascript,html (Kliknij "Render").

Wrzuć na jsbin przykład trochę większy, który nie działa, bo zapewne w innym miejscu masz coś skopane. Selektor jest dobry.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.