Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> select option podmiana, js podmiana/ dodanie listy
martex
post 15.11.2014, 02:05:20
Post #1





Grupa: Zarejestrowani
Postów: 133
Pomógł: 4
Dołączył: 7.11.2012
Skąd: Połaniec

Ostrzeżenie: (0%)
-----


Witam
próbuję zrobić mały formularz z autami
mam 2 selekty marka i model
domyslnie model jest wyłączony po wybraniu marki włącza sie model
pytanie moje jak dodać nową listę do id model
np. audi
to w sliscie bedzie a3 a4 a6 q7
bmw to w liscie bedzie 3 5 6 7 itp itd

udało mi się coś takiego zrobić i neiwiem jak te tablice dodać do w zależnosci od wybranej marki listy option
  1. $(document).ready(function(){
  2. $('#model').attr('disabled', 'disabled');
  3. //alert('omg');
  4.  
  5. var audii = ['a1','a2','a3','a4','q7'] ;
  6. var bmww = ['3','5','6','7'];
  7.  
  8. function marka(event){
  9. var zmienna = document.getElementById('contactform').marka.value;
  10. //var asdf = (obiektSelect.options[obiektSelect.selectedIndex].value );
  11. //alert(zmienna);
  12. return zmienna;
  13.  
  14. };
  15.  
  16. $('#marka').change(function(){
  17. switch(marka()) {
  18. case 'audi':
  19. alert('audi');
  20. $('#model').removeAttr('disabled');
  21.  
  22. break;
  23. case 'bmw':
  24. alert('bmw');
  25. $('#model').removeAttr('disabled');
  26. break;
  27. default:
  28.  
  29. };
  30.  
  31. });
  32.  
  33. });
Go to the top of the page
+Quote Post
aniolekx
post 15.11.2014, 10:00:09
Post #2





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


w niektórych miejscach użyłem polskich nazw zmiennych (czego z reguły nie robię), ale zdecydowałem ze w tym przypadku będzie czytelniej.
sprawdziłem na jQuery w wersji 2.1.1

  1. $(function(){
  2. var marki = [];
  3. marki['audi'] = ['a1','a2','a3','a4','q7'];
  4. marki['bmw'] = ['3','5','6','7'];
  5.  
  6. function insert_option(select, wybrany, opcje)
  7. {
  8. select.find('option').remove();
  9. select.append($('<option>', { value : '' }).text(''));
  10.  
  11. if (wybrany in opcje) {
  12. select.removeAttr('disabled');
  13.  
  14. for (i in opcje[wybrany]) {
  15. var text= opcje[wybrany][i];
  16. select.append($('<option>', { value : text }).text(text));
  17. }
  18.  
  19. } else {
  20. select.prop('disabled', true);
  21. }
  22.  
  23. }
  24.  
  25. $("#marka").change(function(){
  26. var select = $('#model');
  27. var wybrany = $(this).find("option:selected").val();
  28. insert_option(select, wybrany, marki);
  29. });
  30.  
  31. });



sprawdziłem na tym kawałku HTML'a:

  1. <form id="contractform"></form>
  2. <select id="marka">
  3. <option value=""></option>
  4. <option value="bmw">BMW</option>
  5. <option value="audi">Audi</option>
  6. </select>
  7.  
  8. <select id="model" disabled>
  9. </select>
  10. </form>


Ten post edytował aniolekx 15.11.2014, 10:02:45
Go to the top of the page
+Quote Post
martex
post 15.11.2014, 12:53:12
Post #3





Grupa: Zarejestrowani
Postów: 133
Pomógł: 4
Dołączył: 7.11.2012
Skąd: Połaniec

Ostrzeżenie: (0%)
-----


http://jsfiddle.net/8yj0uj2t/

coś nie chce mi to działać
Go to the top of the page
+Quote Post
aniolekx
post 15.11.2014, 16:37:51
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


Masz literowke w nazwie funkcji, zle to wkleiles, bo masz dwa razy funkcie ktora czeka az document będzie gotowy.
Go to the top of the page
+Quote Post
martex
post 16.11.2014, 02:30:08
Post #5





Grupa: Zarejestrowani
Postów: 133
Pomógł: 4
Dołączył: 7.11.2012
Skąd: Połaniec

Ostrzeżenie: (0%)
-----


http://jsfiddle.net/8yj0uj2t/1/
nie zauważyłem tej literówki
dzięki działa

a jeszcze mam pytanko jak stworzyć element <br> który mógłbym dodawać w kilku miejscach questionmark.gif

var mybr = document.createElement('br');

dodaje to do inputów tak :
this.box_section1.appendChild(mybr);

ale mogę tego użyć tylko raz inaczej wyskakuje błąd że mybr jest już używane

http://jsfiddle.net/q4zayqpe/17/

przy divie na stałe (display:none) było ok
teraz mam problemy z dodaniem option do select
Go to the top of the page
+Quote Post
aniolekx
post 16.11.2014, 11:00:49
Post #6





Grupa: Zarejestrowani
Postów: 340
Pomógł: 46
Dołączył: 31.07.2009
Skąd: A

Ostrzeżenie: (0%)
-----


w zasadzie to o co pytasz masz w tym kodzie który ci podałem, tam tez tworze wiele razy ten sam element (option) i dodaje go do selecta, sprawdź w dokumentacji jQuery funkcje których nie znasz.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 22:17