如何计算JS中4类型单选按钮的值和

时间:2018-01-24 04:30:38

标签: javascript jquery html laravel

我是Laravel的新人。我有一些关于使用js计算的问题。在这里我的界面。

如果我单击按钮是,值= 1,否则它是值= 0,总数将显示在sub_total中。但是,我有一些问题如何为此计算创建JavaScript。这是我的HTML代码。

<td>{!! Form::radio('que_1',0,null) !!}</td>
<td>{!! Form::radio('que_1',1,null) !!}</td>
<td>{!! Form::radio('que_2',0,null) !!}</td>
<td>{!! Form::radio('que_2',1,null) !!}</td>
<td>{!! Form::radio('que_3',0,null) !!}</td>
<td>{!! Form::radio('que_3',1,null) !!}</td>
<td>{!! Form::radio('que_4',0,null) !!}</td>
<td>{!! Form::radio('que_4',1,null) !!}</td>

这是我的javascript。

<script>
document.getElementById('mcr').addEventListener('click', function (event) {
    if (event.target.name === 'que_1' || event.target.name === 'que_2' || event.target.name === 'que_3' || event.target.name === 'que_4') {
        var item1 = 0,
                item2 = 0,
                item3 = 0,
                item4 = 0,
                totalPrice = 0,
                items1 = document.getElementsByName('que_1'),
                items2 = document.getElementsByName('que_2'),
                items3 = document.getElementsByName('que_3'),
                items4 = document.getElementsByName('que_4');

        //at here, how can i calculate for que3 and que4
        if (event.target.name === 'que_1') {
            item1 = parseInt(event.target.value);

            for (i = 0; i < items2.length; i++) {
                if (items2[i].checked) {
                    item2 = parseInt(items2[i].value);
                }
            }
        }

        if (event.target.name === 'que_2') {
            for (i = 0; i < items1.length; i++) {
                if (items1[i].checked) {
                    item1 = parseInt(items1[i].value);
                }
            }
            item2 = parseInt(event.target.value);
        }

        totalPrice = item1 + item2;
        $('#sub_total').val(totalPrice);
    } else {
        return;
    }
});

3 个答案:

答案 0 :(得分:0)

你可以通过jQuery来做! Catch单选按钮单击并循环所有单选按钮,并检查每个收音机是否已prop('checked')检查。我认为如果无线电值为1,您只想添加总价格,因此请使用&运算符为其添加条件。

$("input[type=radio]").on("click",function() {
    var totalPrice = 0;
   $("input[type=radio]").each(function() {
       var cur_val = parseInt($(this).val())
       if($(this).prop("checked") && cur_val) { // is checked and is value 1
           totalPrice += cur_val;
       }
   });
    $('#sub_total').val(totalPrice);
});

答案 1 :(得分:0)

由于值为10只能获得1作为值的已检查无线电的集合长度

&#13;
&#13;
var $radios = $(':radio[name^="que_"]').change(function() {

  var totalPrice = $radios.filter(function() {
    return this.checked && this.value === '1'
  }).length;

  $('#sub_total').val(totalPrice);

});

// change first one on page load for demo
$radios.first().change()
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <label>No
    <input type="radio" name="que_1" value="0">
  </label>
  <label>Yes
    <input type="radio" name="que_1" value="1" checked>
  </label>
</div>
<div>
  <label>No
    <input type="radio" name="que_2" value="0">
  </label>
  <label>Yes
    <input type="radio" name="que_2" value="1" checked>
  </label>
</div>
<div>
  <label>No
    <input type="radio" name="que_3" value="0" checked>
  </label>
  <label>Yes
    <input type="radio" name="que_3" value="1">
  </label>
</div>
<div>
  <label>No
    <input type="radio" name="que_4" value="0">
  </label>
  <label>Yes
    <input type="radio" name="que_4" value="1" checked>
  </label>
</div>

<h4>Total: <input id="sub_total" value=0></h4>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

据我所知,您只想捕捉被点击的单选按钮并执行一个值的总和。所以这是JQuery中最简单的方法:

$("input[type=radio]").on("click", function() {
  var totalPrice = 0;
  $("input[type=radio]:checked").each(function() {
    totalPrice += parseInt($(this).val());
  });
  $('#sub_total').val(totalPrice);
});