Zmiana kolejności elementów i nazwy dla pola input |
Zmiana kolejności elementów i nazwy dla pola input |
25.06.2017, 07:14:57
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 25.06.2017 Ostrzeżenie: (0%) |
Cześć, od razu opiszę co chcę osiągnąć.
Dane wejściowe: Mam grupę elementów z klasą "box". Każdy taki div zawiera kilka pól formularza (w tym <input> typu radio). Elementy te można sortować (przenosić nad lub pod inne elementy) z wykorzystaniem funkcji sortable z jQuery UI. Każdy element <input> z danego boxa posiada nazwę w postaci "box-[numerIndeksu][nazwaPola]". Przed sortowaniem kolejne boxy mają numerIndeksu ustawiony rosnąco, zaczynając od indeksu 0. Dane wyjściowe: Po przeniesieniu elementu boksa należy zmienić tak numerIndeksu w nazwie każdego pola <input> aby zachować rosnącą numerację indeksów poczytnając od 0 dla wszystkich kolejnych boxów. Poniżej zamieszczam kod funkcji, która jest wykonywana po zakończeniu przenoszenia. Oraz układ boxów zaraz po przeniesieniu. Efekt jaki chce osiągnąć, to aby pierwszy box miał indeks [0], drugi boks [1], trzeci [2], itd. Problem mam z polem typu radio. Muszę uwzględnić sytuacje w której może być że jeden box ma trzy opcje radio, a drugi box ma inną liczbę opcji niż trzy (np. dwie). Mój kod obecnie w pierwszym boxie przy radio "Option 1" otrzymuje nazwę taką samą jak dla boksa drugiego - najpierw zmienia go na [tmp] a następnie na indeks [1] a powinien mieć indeks [0]. Kod java script:
https://jsfiddle.net/pbLkabhe/4/ Nie za bardzo wiem, czemu tak się dzieje. |
|
|
25.06.2017, 16:13:57
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 761 Pomógł: 1822 Dołączył: 11.03.2014 Ostrzeżenie: (0%) |
Bardzo to zagmatwane.
Jeśli masz mało różnych typów pól, tj. w każdym boksie występuje tylko tekstowy input i radio, to wprowadź nazwy na stałe do kodu - czyli aktualna nazwa Cię nie interesuje, wprowadzasz nową, zgodnie z nową numeracją. Jeśli jest więcej różnych typów pól lub grup pól, to zapisz oryginalną nazwę (bez numeracji) w atrybucie np.: data-original-name, a podczas nowego numerowania pobieraj ją stamtąd. P.S. Do grupowania pól używa się <fieldset>. -------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 25.04.2024 - 02:37 |