2 selekty zależne od siebie


(Konradnie1) #1

Witam mam na stronie dwa selecty np:

Pierwszy select:

1. a

2. b

3. c

4. d

5. e 

6. f

7. g

8. h

9. i

10. j

Drugi select:

1. k

2. l

3. m

4. n

5. o 

6. p

7. r

8. s

9. t

10. u

i chce zrobić tak ze moge wybrac np 15- czyli np 10 z pierwszego selecta i 5 z drugiego i nie da sie wiecej tzn 10 z pierwszego i drógiego.

Mam nadzieje że ktoś zrozumie i bedzie umiał pomóc.


(Drobok) #2

Brak ci najważniejszego, w czym chcesz to napisać :stuck_out_tongue:

W jquery np:

$("#select1Id").attr("selectedIndex")+$("#select2Id").attr("selectedIndex")

Da ci sumę tych selectów. Dajesz select change / form submit, powyższą linię>13 w if (-2 bo od 0 liczysz) i wyświetlasz alert.


(Konradnie1) #3

Dzięki za odpowiedz.

Niestety nie znam jquery.

Mógłbyś napisać cały kod i jak go uzyć?? chce żeby reszta była nieaktywna w selekcie.


(Konrad Kosowski) #4

http://jsfiddle.net/RWpdb/

Tutaj masz dzialajacy przyklad. Jednak zwracam uwage na dwie sprawy:

  1. Skrypt dodaje atrybut disabled, wiec wybrane wartosci nie zostana przekazene w poscie/gecie. Rozwiazania sa dwa:

a) albo przed submitem odpalisz skrypt, ktory wlaczy ponownie wszystkie selecty ( $(“select”).attr(“disabled”, false); )

b) wartosci wszystkich zaznaczonych selectow bedziesz przechowywal w innych inputach typu hidden. Imo pierwsze rozwiazanie jest bardziej elastyczne.

  1. skrypt nie pozwala na odblokowanie ponownie selectow. A co jesli user popelni blad i bedzie chcial ponownie wypelnic selecta?

(Konradnie1) #5

Ale w obu selectach moge zaznaczyć 10 pola a m chodzi o takie coś żeby sie nie dało. Jak wybiore 10 w pierwszysm to w 2 tylko 5 sie da o takie coś mi chodzi.


(Konrad Kosowski) #6

Ograniczenie jest do 4… wiec cos chyba zle rozumiem. Zaznaczam dwa w pierwszym, dwa drugim i koniec. Zaznaczam 3 w pierwszym, jeden w drugim, koniec. Zaznaczam 4 w jednym - koniec. Nie o to ci chodzi? To jasniej wyjasnij o co, bo nie kumam.


(Drobok) #7

IMO jemu chodzi o select bez multiple :slight_smile: A te cyfry to i-te elementy wybrane z selecta.


(Konrad Kosowski) #8

W takim razie, jesli chodzi o wartosci selektow:

http://jsfiddle.net/4m7Yj/


(Konradnie1) #9

Dzięki wielkie właśnie o to mi chodziło poza 1 rzeczą.

Dało by się zrobić tak żebym nie mógł wybrać wiecej tzn że jak wybiore 10 z pierwszego to w drógim żeby było tylko 5 pozycji albo żeby reszta była zablokowana??


(Konrad Kosowski) #10

http://jsfiddle.net/zfVLp/1/

mniej wiecej to o co pytasz. Tutaj naprawde nie ma czarow, jquery to mimo wszystko podstawa, wiec zachecam do takiego opykania skryptu, zeby byl elastyczny (w tej chwili po zmianie ktoregokolwiek z selectow nastepuje sprawdzenie wartosci w drugim i dociecie do akceptowalnych wartosc. Jednak po wybraniu kolejny raz w pierwszym wartosci mniejszej niz poprzednio - ilosc w drugim pozostanie taka sama. Generalnie widze tutaj jakis concept error)


(Konradnie1) #11

Dokładnie o to chodziło. Wielkie dzieki.Ta ostatnia linijka jest potrzebna?


(Konrad Kosowski) #12

heh :slight_smile: nie jest :slight_smile: forkowalem fiddla i mi sie zostawilo :slight_smile:


(Konradnie1) #13

(B.Andy) #14

Musisz dać ten kod Javascript pomiędzy:

$(function()

...

});

(Konradnie1) #15

Dobra dzięki działa.


(Konrad Kosowski) #16

Nie dziala, bo nie czekasz az sie dokument zaladuje i w domie nie ma jeszcze elementow, to jak ma dzialac?