Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Radio Input değerlerini toplamak

Merhabalar,

Seçilen radio tuşlarına göre otomatik toplama yapan bir JS kodu var elimde.

  <script>
        function DisplayPrice(price){
                        var val1 = 0;
                        for( i = 0; i < document.form1.price.length; i++ ){
                                if( document.form1.price[i].checked == true ){
                                        val1 = document.form1.price[i].value;
                                }
                        }

                        var val2 = 0;
                        for( i = 0; i < document.form1.price2.length; i++ ){
                                if( document.form1.price2[i].checked == true ){
                                        val2 = document.form1.price2[i].value;
                                }
                        }
						
                        var val3 = 0;
                        for( i = 0; i < document.form1.price3.length; i++ ){
                                if( document.form1.price3[i].checked == true ){
                                        val3 = document.form1.price3[i].value;
                                }
                        }

                        var sum=parseInt(val1) + parseInt(val2) + parseInt(val3);
            document.getElementById('totalSum').value=sum;
        }
    </script>


    <form name="form1" id="form1">
        <input id="rdo_1" type="radio" value="159" name="price" onclick="DisplayPrice(this.value);">159
        <input id="rdo_2" type="radio" value="259" name="price" onclick="DisplayPrice(this.value);">259
        <input id="rdo_1" type="radio" value="345" name="price2" onclick="DisplayPrice(this.value);">345
        <input id="rdo_2" type="radio" value="87" name="price2" onclick="DisplayPrice(this.value);">87
        <input id="rdo_1" type="radio" value="12" name="price3" onclick="DisplayPrice(this.value);">12
        <input id="rdo_2" type="radio" value="45" name="price3" onclick="DisplayPrice(this.value);">45
    </form>
	
    <input type="text" name="totalSum" id="totalSum" value="" size="2" readonly="readonly">



Bu şekilde gayet iyi çalışyıor ama radio butonlarının name kısmı price3[456] vb. şekilde olunca çalışmıyor. JS kodları üzerinde gerekli değişikliği yaparak sorunu çözmeye çalıştım ama beceremedim.

Şimdiden teşekkürler.
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • NooBisH adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    4 cevap - 10 soru
    Şöyle bir çözüm buldum:

    <script> 
    $(function(){
      $("input:radio").click(function(){
        var total=0;
    	var gelen=0;
        $('input:checked').each(function(index) {
    	$('input:checked').parents('.olabel').addClass("olabel2");
    	$('input:not(:checked)').parents('.olabel2').removeClass("olabel2").addClass("olabel");
    	gelen = $(this).val();
    		if(gelen=="10449"){gelen="10";}
    		if(gelen=="10450"){gelen="10";}
    		if(gelen=="10451"){gelen="20";}
    		if(gelen=="10452"){gelen="100";}
    		if(gelen=="10457"){gelen="20";}
    		if(gelen=="10456"){gelen="40";}
    		if(gelen=="10455"){gelen="60";}
    		if(gelen=="10469"){gelen="80";}
    		if(gelen=="10453"){gelen="35";}
    		if(gelen=="10454"){gelen="50";}
    		if(gelen=="10467"){gelen="70";}
    		if(gelen=="10468"){gelen="100";}
    		if(gelen=="10470"){gelen="35";}
    		if(gelen=="10471"){gelen="50";}
    		if(gelen=="10472"){gelen="70";}
    		if(gelen=="10473"){gelen="100";}
    		total += parseInt(gelen);
        });
        $("input[name='totalSum']").val(total)
      });
    });
    </script>
    


    İlgilenenlere teşekkür ederim.
    • gungnir89 adlı üyenin fotoğrafı gungnir89
      bu cevap senin sorunun nasıl doğru cevabı oluyor:D name price[123] bile kullanılmamış. baştan savma bir kod.
      9 yıl önce yazılmış

Cevaplar

  • siyahbeyaz adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    472 cevap - 20 soru
    radio isimlerini degistirdigin zaman. js kodundaki radio3 radio2 gibi isimlerini eklemen lazım.. ve en sonda

    var sum=parseInt(val1) + parseInt(val2) + parseInt(val3) + parseInt(val3434); gibi val degerlerini toplatırman gerekcek. zaten hersey ortada
    • NooBisH adlı üyenin fotoğrafı NooBisH
      Evet o şekilde yapıyorum ama price yazısını price[123] şekilde değiştirdiğimde çalışmıyor.
      Aşağıdaki gibi yani:
                            var val1 = 0;
                            for( i = 0; i < document.form1.price[123].length; i++ ){
                                    if( document.form1.price[123][i].checked == true ){
                                            val1 = document.form1.price[123][i].value;
                                    }
                            }
      


      Radio name ini price[123] şeklinde yapmam şart.
      9 yıl önce yazılmış
  • gungnir89 adlı üyenin fotoğrafı
    9 yıl önce yazılmış
    9 yıl önce güncellenmiş
    25 cevap - 13 soru
    function topla(){
    $checkedCheckboxes = $('input:radio[name=price[123]]:checked');
    var selectedValues=0;		
    $checkedCheckboxes.each(function () {
        selectedValues =  parseInt($(this).val()) +selectedValues ;
    });
    alert(selectedValues);
    }
    


    dener misin?
    • NooBisH adlı üyenin fotoğrafı NooBisH
      JS bildiğim kadarıyla denedim ama çalıştıramadım. Sanırım ben yanlış denedim, nasıl kullanılacağını da açıklayabilir misiniz? Cevabınız için teşekkür ederim.
      9 yıl önce yazılmış
    • gungnir89 adlı üyenin fotoğrafı gungnir89
      $("input:radio[name=price[123]]").change(function() {
        $checkedCheckboxes = $('input:radio[name=price[123]]:checked');
        var selectedValues=0;       
        $checkedCheckboxes.each(function () {
          selectedValues =  parseInt($(this).val()) +selectedValues ;
         });
        alert(selectedValues);
      });
      
      9 yıl önce yazılmış