麻烦设置和添加数组值javascript

时间:2015-03-03 02:05:37

标签: javascript forms add assign

我想给每个复选框一个整数值,然后如果选中该框,则添加值并在文本框中显示总数,其中ID =" options"。到目前为止,代码没有将值发送到所需位置。任何有关如何改进代码的说明都会有所帮助。谢谢。

<html>
<body>

<form id="registration" name="registration">
<input name="opt1" value="5" type="checkbox"> Breakfast ($5)
<input name="opt2" value="10" type="checkbox"> Lunch ($10)
<input name="opt3" checked="checked" value="0" type="checkbox"> Happy Hour (free!)
<input id="options" name="options" type="text">
</form>

</body>
</html>

<script>

function getOptions() {

    var form = document.getElementById("registration"),
        inputs = form.getElementsByTagName("input"),
        result = 0;

    for (var i = 0; i < inputs.length; i++) {
        if (inputs[i].type === "checkbox" && inputs[i].checked) {
            result += inputs[i].value;
            document.getElementById("options").value = result;
        }
    }
}

getOptions();

</script>

1 个答案:

答案 0 :(得分:1)

您可能需要将onchange事件处理程序附加到复选框,如下所示。在将inputs[i].value添加到result之前,您应该使用parseFloat()var form = document.getElementById("registration"), inputs = form.getElementsByTagName("input"); function getOptions() { var result = 0; for (var i = 0, len = inputs.length; i < len; i++) { if (inputs[i].type === "checkbox" && inputs[i].checked) { result += parseFloat(inputs[i].value); } } document.getElementById("options").value = result; } for (var i = 0, len = inputs.length; i < len; i++) { if (inputs[i].type === "checkbox") { inputs[i].onchange = function () { getOptions(); } } } getOptions(); 解析为一个数字。

{{1}}

JSFiddle