Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]onchange select = jak ustawić na wyjściu wartość wczytaną? oraz jak dodać zdarzenie checked?
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie mam kod:

  1. window.onload=function(){
  2. document.getElementById('currencyChoice').onchange = function() {
  3. usdPrice = '<?=$kurs_dolara;?>';
  4. gbpPrice = '<?=$kurs_funta;?>';
  5. eurPrice = '<?=$kurs_euro;?>';
  6.  
  7. var currencyType = this.value;
  8. var currencyValue = 0.00;
  9.  
  10. switch(currencyType) {
  11. case "us": currencyValue = usdPrice; break;
  12. case "euro": currencyValue = eurPrice; break;
  13. case "gbp": currencyValue = gbpPrice; break;
  14. case "pln": currencyValue = plnPrice; break;
  15. default: return;
  16. }
  17.  
  18. document.getElementById('currencyValueInput').value = currencyValue;
  19. }
  20. }
  21.  
  22.  
  23.  
  24. <input type="text" id="currencyValueInput">
  25.  
  26. <select id="currencyChoice">
  27. <option value="us">DOL</option>
  28. <option value="euro">EURO</option>
  29. <option value="gbp">FUNT</option>
  30. <option value="pln" selected>PLN</option>


Chciałbym , żeby od razu była podana wartość w PLN - nie mogę sobie z tym poradzić. Próbowałem z default w switchu.

Kolejna rzecz chciałbym zrobić że jak wybiorę z innego selecta nazwijmy go id=wybor wartość 9 to wtedy pojawi mi się checkbox opcjonalnie zaznaczony którego można zaznaczać/odznaczać. Jeśli będzie zaznaczony doda mi wartość wysyłki.


Reasumując mam produkt o podanej cenie który sobie przeliczam na ceny w danej walucie w której sobie wybiorę w selecie. W innym selecie po wyborze wartości 9 ma pojawić się checkbox zaznaczony który dodaje do ceny np 10 zł.

  1. cena = 'kwota wczytana'; //tu jeśli istnieje zaznaczony checkbox dodaje np te 10 zł.
  2. usdPrice = 'cena/<?=$kurs_dolara;?>';
  3. gbpPrice = 'cena/<?=$kurs_funta;?>';
  4. eurPrice = 'cena/<?=$kurs_euro;?>';
koodo218
Cytat(casperii @ 20.03.2016, 14:43:05 ) *
Chciałbym , żeby od razu była podana wartość w PLN - nie mogę sobie z tym poradzić. Próbowałem z default w switchu.

Zamiast funkcji anonimowej na rzecz zdarzenia onchange zrób sobie zwykła funkcję - którą wywołasz w momencie zdarzenia onchange + dodatkowo na start.

Cytat(casperii @ 20.03.2016, 14:43:05 ) *
Kolejna rzecz chciałbym zrobić że jak wybiorę z innego selecta nazwijmy go id=wybor wartość 9 to wtedy pojawi mi się checkbox opcjonalnie zaznaczony którego można zaznaczać/odznaczać. Jeśli będzie zaznaczony doda mi wartość wysyłki.

W czym problem?
casperii
Z pierwszą rzeczą już sobie poradziłem. Problem na chwilę obecną mam z pojawieniem się checkboxa jeśli select id="wybor" ma wartość 9


  1. var select = document.getElementById('choice'),
  2. onChange = function(event) {
  3. var shown = this.options[this.selectedIndex].value == 1;
  4. //tu obróbka kwoty wysylki do ceny.
  5. };
  6.  
  7. if (select.addEventListener) {
  8. select.addEventListener('change', onChange, false);
  9. }else{
  10. select.attachEvent('onchange', function() {
  11. onChange.apply(select, arguments);
  12. });
  13. }
  14. <select id="choice">
  15. ..
  16. ..
  17. <option value="9"></option>
Geniesis
W samym JS zbytnio się z tym nie bawiłem, jednakże w jQuery można to prosto zrobić (napiszę, może nakieruje Cię to na właściwe rozwiązanie w czystym JS):
https://jsfiddle.net/n2kdeafb/
rychu123
A może Angular JS ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.