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

Js formularz switch wynik

VPS Starter Arubacloud
0 głosów
254 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,060 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 (251,210 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,060 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,060 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 176 wizyt
pytanie zadane 19 listopada 2023 w JavaScript przez Piotrek2713 Mądrala (5,320 p.)
0 głosów
0 odpowiedzi 139 wizyt
0 głosów
3 odpowiedzi 287 wizyt

92,452 zapytań

141,262 odpowiedzi

319,077 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...