[JS] jQuery: pomoc w nawigacji pomiędzy elementami

0

Witam, mam problem ze składnią jQuery, próbuję dodać inputowi funkcjonalność aktualizacji value innego inputa.

Struktura HTML wygląda tak:

<ul id="skl_list">
<li> <input type="text" nazwa="grupa[]"> <ul>
	<li><input><input><input type="hidden" nazwa="skladnik[][grupa]"></li>
	<li><input><input><input type="hidden" nazwa="skladnik[][grupa]"></li>
</ul></li>
<li> <input type="text" nazwa="grupa[]"> <ul>
	<li><input><input><input type="hidden" nazwa="skladnik[][grupa]"></li>
	<li><input><input><input type="hidden" nazwa="skladnik[][grupa]"></li>
</ul></li>
</ul>

Co chcę osiągnąć: przy wpisaniu czegoś w input "grupa[]" chcę aby wartość w niego wpisywana kopiowała się do wszystkich inputów "skladnik[][grupa]" będących jego childrenami (w tym wypadku po 2 "skladnik[][grupa]" skopiować mają się każdy z odpowiedniego inputa "grupa[]".

do keyup'a dla grup mam podpisaną akcję:

$('#skl_list').delegate('input[name="grupa[]"]', 'keyup', function() {

});

nie mogę dojść jak nawigować między tymi elementami, próbowałem

$(this).siblings('input[name="skladnik[][grupa]"]').val($(this).val());

children, next - nie chcę mi się zmieniać wartość jakkolwiek bym nie próbował

będę wdzięczny za wszelką pomoc.

0

Znalazłem, jak często bywa, po zapytaniu się kogoś sam znajduję odpowiedź.

$('#skl_list').delegate('input[name="grupa[]"]', 'keyup', function() {
	var p = $(this).val();
	$(this).parent('li').find('input[name="skladnik[][grupa]"]').val(p); 

});

temat do usunięcia.
Pozdrawiam

1

Siema czoko :)

Primo: w inputach zmień 'nazwa' na 'name' lub 'data-nazwa' co by być koszernym.
Secundo: szukanie po klasie jest szybsze niż po takich CSS selektorach.
Tertio: obadaj to:

$('#skl_list').delegate('input[name="grupa[]"]', 'keyup', function() {
	var val = $(this).val();
	$(this).siblings('ul').find('input[name="skladnik[][grupa]"]').val(val);
});

No i mnie ubiegłeś, jak wczoraj na IM :P

0

oj, nazwa/name to pomyłka, pisałem tu kod, nie kopiowałem, oczywiście jest name

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.