• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Js formularz switch wynik

Object Storage Arubacloud
0 głosów
270 wizyt
pytanie zadane 4 czerwca 2021 w JavaScript przez Kalindoreks Użytkownik (620 p.)
Maska<input type="radio" name="check" value="25"><br>
Pilling<input type="radio" name="check" value="100"><br>
Oskurowanie<input type="radio" name="check" value="500"><br>
<input type="button" value="kliknij" onClick="funkcja3()">
<p id="wynik3"></p>

<script>
function funkcja3()
{
    let zabiegi2=document.getElementsByName("check").value;
    console.log(zabiegi2);
    let cena2=0;
    
    switch(zabiegi2)
    {
        case"25":
        cena2=25;
        break;
        case"100":
        cena2=100;
        break;
        case"500":
        cena2=500;
        break;
    }
    
    document.getElementById("wynik3").innerHTML="Musisz zapłacić "+cena2;
    
}
</script>

 

komentarz 4 czerwca 2021 przez Kalindoreks Użytkownik (620 p.)
za każdym razem jak wybieram któreś radio wychodzi wartość 0
komentarz 4 czerwca 2021 przez pablop76 VIP (123,180 p.)
Wstaw kod w odpowiednie dla danego języka bloczki i podaj jeszcze js, bo nie znamy mechaniki.
komentarz 12 czerwca 2021 przez VBService Ekspert (253,340 p.)

@Kalindoreks, w tym switch-u to w sumie dublujesz dane  wink


function funkcja()
{
    const gry = document.getElementsByName("gry");
    let wynik = 0;
    let cena_dostawa = 0;
    cena_dostawa = parseInt(document.getElementById("dostawa").value);
      
    for (let i=0; i<gry.length; i++)
    {
        if (gry[i].checked)
        {
            wynik += parseInt(gry[i].value);
        }
    }
    wynik += cena_dostawa;
     
    document.getElementById("wynik").innerHTML="Musisz zapłacić "+wynik;
}

lub nawet

function funkcja()
{
    const gry = document.getElementsByName("gry");
    let wynik = 0;
    wynik = parseInt(document.getElementById("dostawa").value);
      
    for (let i=0; i<gry.length; i++)
    {
        if (gry[i].checked)
        {
            wynik += parseInt(gry[i].value);
        }
    }
     
    document.getElementById("wynik").innerHTML="Musisz zapłacić "+wynik;
}

 

1 odpowiedź

+2 głosów
odpowiedź 4 czerwca 2021 przez pablop76 VIP (123,180 p.)
wybrane 5 czerwca 2021 przez Kalindoreks
 
Najlepsza

Jak widzę z pytania zadanego wcześniej (zamkniętego) próbujesz pobrać value z listy elementów. A tak się nie da. Musisz przepuścić listę przez pętlę i dopiero sprawdzając, który element jest zaznaczony pobrać z niego value.

const zabiegi2 = document.getElementsByName("check");
const wynik = document.getElementById("wynik3");
function funkcja3(){
	  zabiegi2.forEach(el=>{
			if(el.checked){
				 wynik.textContent = el.value;
			}
		}) 
}

 

komentarz 5 czerwca 2021 przez Kalindoreks Użytkownik (620 p.)

Okej dzięki za odpowiedź. A mógłbyś jeszcze wytłumaczyć dlaczego switch działa w liście rozwijanej ?

Bierki<input type="checkbox" value="5" name="gry"><br>
Nerf<input type="checkbox" value="25" name="gry"><br>
Szachy<input type="checkbox" value="50" name="gry"><br>
Monopoly<input type="checkbox" value="500" name="gry"><br>
<select id="dostawa">
<option value="0">odbiór</option>
<option value="12">paczkomat</option>
<option value="15">listonosz</option>
</select>
<input type="button" value="kliknij" onClick="funkcja()">
<p id="wynik"></p>


<script>
function funkcja()
{
	let gry=document.getElementsByName("gry");
	let wynik=0;
	let cena=0;
	let dostawa=document.getElementById("dostawa").value;
	
	switch(dostawa)
	{
	case"0":
	cena=0;
	break;
	case"12":
	cena=12;
	break;
	case"15":
	cena=15;
	break;
	}
	
	for(let i=0; i<gry.length; i++)
	{
		if(gry[i].checked)
		{
			wynik+=parseInt(gry[i].value);
		}
	}
	wynik+=cena;
	
	document.getElementById("wynik").innerHTML="Musisz zapłacić "+wynik;
}
</script>

 

2
komentarz 5 czerwca 2021 przez pablop76 VIP (123,180 p.)
Inputów masz kilka i każdy zwraca swoja wartość a select o danym id jest jeden i zwraca jedną wartość.

Podobne pytania

0 głosów
3 odpowiedzi 200 wizyt
pytanie zadane 19 listopada 2023 w JavaScript przez Piotrek2713 Mądrala (5,380 p.)
0 głosów
0 odpowiedzi 143 wizyt
0 głosów
3 odpowiedzi 301 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...