使用另一个属性代替输入值来更新total


Use another attribute instead of the input value to update total

基本上,下面的代码根据选中的复选框/单选按钮在id="total" span中创建一个订单总数。总数由复选框/单选按钮的值改变,但我想知道是否有任何其他方法来改变总数而不使用输入值,因为它需要在表单的下一部分。也许是另一个输入属性?我只是不知道该怎么做。

所有的帮助将非常感激,谢谢!

<form action="cart.php" method="post" name="builder">
<input checked="checked" type="radio" name="term" value="12" onclick='check_value(this, 1)' />
<input type="radio" name="term" value="24" onclick='check_value(this, 2)' />
<input type="radio" name="term" value="36" onclick='check_value(this, 3)' />
<input type="checkbox" name="cid[]"  value="2" onclick='check_value(this, "")' />
<input type="checkbox" name="cid[]"  value="3" onclick='check_value(this, "")' />
<input type="checkbox" name="cid[]"  value="4" onclick='check_value(this, "")' />
Total Order: $<span id="total">36</span>
</form>

function check_value(curElem, id) {
            // calculate Total
            var total = 0;
            var controls = document.getElementsByTagName('input');
            for (var i = 0; i < controls.length; i++) {
                if ((controls[i].type === 'radio' || controls[i].type === 'checkbox') && controls[i].checked) {
                    total = total + parseFloat(controls[i].value);
                }
            }
            document.getElementById("total").innerHTML = total;
            //alert("Total: " + total);
        }  

如果你真的想使用其他属性,使用它

使用您选择的属性,例如nval,并以controls[i].getAttribute("nval")访问它

,

您可以在页面中创建大量的hidden input fields,用于每个复选框来保存您的值。并使用这些隐藏字段来计算total