javascript - 将两个单选按钮的值相加作为购物车

标签 javascript php jquery html css

问题是:

  • 我有四个单选按钮和一个复选框。
  • 两个单选按钮具有一个名称,两个具有另一个名称。
  • 最后一个同名的单选按钮只有在复选框被选中时才会出现。

What I want is add the value of first radio button and the value of radio button that appears after the checkbox is checked.

那么我如何使用 javascript 或任何其他技术来计算这两个值的总和。我在做元素时需要尽快使用它。我需要像在购物车中那样完成。这意味着如果用户选择另一个单选按钮,则应减去较早的单选按钮的值并添加新的单选按钮的值。

<script>
// get list of radio buttons with name 'size'
var sz = document.forms['de'].elements['type'];

// loop through list
for (var i=0, len=sz.length; i<len; i++) {
    sz[i].onclick = function() { // assign onclick handler function to each
        // put clicked radio button's value in total field
        var m=this.form.elements.total.value = this.value;
    };
}
var sa = document.forms['de'].elements['glass'];

// loop through list
for (var i=0, len=sa.length; i<len; i++) {
    sa[i].onclick = function() { // assign onclick handler function to each
        // put clicked radio button's value in total field
        var n=this.form.elements.total1.value = this.value;
    };
}
      
$(document).ready(function () {
  $('.a').hide();
  $('#checkb').click(function () {
    var $this = $(this);
    if ($this.is(':checked')) {
      $('.a').show();
    } else {
      $('.a').hide();
    }
  });
});
 
    
</script>
<form action="sum.php" method="post" name="de">
<fieldset>
<table align="center">
<tr><td align="center" colspan="100sp"><label><input type="radio" name="type" value="200" />Ordinary (Rs. 200)</label>
<tr><td align="center" colspan="100sp"><label><input type="radio" name="type" value="500" />Original (Rs. 500)</label>
<tr><td colspan="100sp"><label>Do You want a screen guard or a tempered glass?</label><input type="checkbox" name="screen" value="yes" id="checkb" />
<tr><td align="center" colspan="100sp"><label class="a"><input type="radio" class="a" name="glass" value="100" />Screen Guard (Rs. 100)</label>
<tr><td align="center" colspan="100sp"><label class="a"><input type="radio" class="a" name="glass" value="200" />Tempered Glass (Rs. 200)</label>
</table>
<p><label>Repair: Rs. <input type="text" name="total" value="0" readonly="readonly" /></label></p>
<p><label>Glass: Rs. <input type="text" name="total1" value="0" readonly="readonly" /></label></p>
<p><label>Total: Rs. <input type="text" name="total2" value="0" readonly="readonly" /></label></p>
</fieldset>
</form>

最佳答案

您可以使用 Jquery 事件 Change() 执行此操作.我已将 ID 名称添加到输入文本元素和此 Jquery 行:

检查每一行的注释。

$(document).ready(function() {
  
  //HIDE AND SHOW EXTRA OPTIONS
  $('.a').hide();
  $('#checkb').change(function() {
      $('.a').toggle();
  });
  
  //CHECK WHEN ANY RADIO INPUT CHANGES
  $('fieldset').on('change','input[type=radio]',function(){
    
    //Get the Value and wich field text will change
    var value = $(this).attr('value'),
        target = $(this).attr('name');
    $('#'+target).val(value);
    
    //Show the total 
    var total = parseInt($('#type').val(),10) + parseInt($('#glass').val(),10);
    $('#total').val(total);
    
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <fieldset>
    <label>
      <input type="radio" name="type" value="200" />Ordinary (Rs. 200)</label>
    <br>
    <label>
      <input type="radio" name="type" value="500" />Original (Rs. 500)</label>
    <br>
    <input type="checkbox" name="screen" value="yes" id="checkb" />
    <label>Do You want a screen guard or a tempered glass?</label>
    <br>
    <label class="a">
      <input type="radio" class="a" name="glass" value="100" />Screen Guard (Rs. 100)</label>
    <br>
    <label class="a">
      <input type="radio" class="a" name="glass" value="200" />Tempered Glass (Rs. 200)</label>
    <br>
    <p>
      <label>Repair: Rs.
        <input type="text" id="type" name="total" value="0" readonly="readonly" />
      </label>
    </p>
    <p>
      <label>Glass: Rs.
        <input type="text" id="glass" name="total1" value="0" readonly="readonly" />
      </label>
    </p>
    <p>
      <label>Total: Rs.
        <input type="text" id="total" name="total2" value="0" readonly="readonly" />
      </label>
    </p>
  </fieldset>
</form>

关于javascript - 将两个单选按钮的值相加作为购物车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37682594/

相关文章:

javascript - 我怎样才能把这段代码变成一个jquery函数

PHP MySQL JQuery 表单无法在客户端验证

javascript - Bootstrap 模式弹出窗口立即打开和关闭

javascript - 我需要 "Pro"Paypal 帐户才能使用 Payments API

php - Apache 的可暂停下载

php - 从mysql中随机获取php中的记录

php - 如何计算php文件中javascript的行数?

javascript - 将 Bootstrap Accordion 设置为关闭并在单击时展开选项卡

javascript - 禁用从 chrome 控制台编辑 javascript?

javascript - 如何从通过 Selenium 提供的 html 中提取动态文本 3204255?