我是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;
}
});
答案 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)
由于值为1
而0
只能获得1
作为值的已检查无线电的集合长度
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;
答案 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);
});