Tablica nazw input[]

0

Witam, mam problem z tworzonym dynamicznie formularzem. Tworzy mi się poprawnie ale mam tablicę nazw input o nazwie "okno_cena[]".
W JS $(['input.okno_cena']).val() wpisuje mi do wszystkich pól wartość.
Jak się odnieść do konkretnego pola input?

EDIT:
Doszedłem do tego, że $(['input.okno_cena']).val() operuje na klasie "okno_cena" a nie na nazwie.
Jak to napisać, żeby odnosić się do nazwy?

0

$('input#okno_cena[]').val() ani $('input#okno_cena[0]').val() nie działa.

1

Bo # odnosi się do id elementu. Name jest zwykłym atrybutem, więc należy zastosować składnię dla atrybutu (opisane w tabelce podanej przez dzeka69).

0

Ok, działa mi $('input[name="okno_cena[]"]').val() ale nijak nie mogę się odwołać do konkretnego pola input. Już próbowałem na różne sposoby.
Może ktoś napisać jak to powinno wyglądać?

Druga rzecz to skąd wyciągnąć nazwę klikniętego select'a? Też mam nazwę w formie "nazwa[]".
Obecnie po wybraniu, w obojętnie którym select jakiejś opcji uzupełniają się wszystkie pola input.

0
dzek69 napisał(a):

http://www.w3schools.com/cssref/css_selectors.asp - było w Google

Ktoś kiedyś na tym forum mnie skarcił za podawanie linków do w3schools... Podał mi linka: http://w3fools.com/

0

Mógłby ktoś wprost napisać jak powinna wyglądać składnia tego wyrażenia?
Czytałem 1 i 2 stronkę i nie znalazłem jasnej odpowiedzi - przynajmniej dla mnie.
Tak jak mówiłem, odwołanie przez [name="xxx"] działa ale nie wiem jak się odwołać do elementu tablicy nazw.

0

ja od czasu mojej ostatniej odpowiedzi nie udzielam się w temacie, bo za dużo piszesz, jest to niejasne i za mało z tego wynika. wrzuć przykład na jsbin.com np. i będzie można na tym popracować i ogarnąć temat

1

różnie np do pierwszego elementu:

$('input[name="okno_cena[]"]').first().val();

do ostatniego przez .last() a na przykład do trzeciego przez:

$('input[name="okno_cena[]"]').eq(2).val();

(liczone od zera)
Możesz też wyciągnąć któryś element przez get i użyć normalnego javascriptu:

$('input[name="okno_cena[]"]').get(2).value;

albo skorzystać jak ze zwykłej tablicy a potem z powrotem uzyskać dostęp do metod jQuery przez zamknięcie wszystkiego znowu w znaku dolara (co wygląda już trochę brzydko):

$($('input[name="okno_cena[]"]')[2]).val();

ale uprościsz sprawę jQuery jeżeli jednak nadasz inputom klasę i odwołasz się przez:

$('.klasa').eq(2).val();

dzięki temu będzie mógł skorzystać z natywnej metody przeglądarki getElementsByClassName co powinno być szybsze od wybierania wszystkich inputów a potem sprawdzania ich nazw w skrypcie

albo jeszcze ładniej jeśli zamkniesz te inputy we wspólnym czymś o jednym identyfikatorze i będziesz mógł się odwołać przez

$('#rodzic input')
0

Dzięki bardzo!
Muszę jeszcze jakoś wyciągnąć nr wybranego selecta i będę miał to o co mi chodziło.
Pomoże ktoś z tym?

Ok, już sobie poradziłem przez $('select[name="select_name[]"]').index(this);

Dzięki wszystkim za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1