Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-根据选中的复选框更改输出值_Javascript - Fatal编程技术网

JavaScript-根据选中的复选框更改输出值

JavaScript-根据选中的复选框更改输出值,javascript,Javascript,我对JavaScript相当陌生,正在尝试编写一些代码,在表单中列出三个价格选项,作为复选框。如果前两个都被选中,我希望总价格下降一定数量 我的代码基于此问题中的代码: 它们通过日期变量重置基值。我假设,如果我有一个函数,如果选中这两个框,将基数设置为负值,这将实现我想要的。我还希望在出现这种情况时,输出有一个额外的标记“每月保存x” 但是,我不确定如何将变量与复选框关联起来。。我是否需要按照使用jquery?有很多方法可以解决这个问题。在我开始之前提醒我,永远不要在客户端做类似“计算价格”的

我对JavaScript相当陌生,正在尝试编写一些代码,在表单中列出三个价格选项,作为复选框。如果前两个都被选中,我希望总价格下降一定数量

我的代码基于此问题中的代码:

它们通过日期变量重置基值。我假设,如果我有一个函数,如果选中这两个框,将基数设置为负值,这将实现我想要的。我还希望在出现这种情况时,输出有一个额外的标记“每月保存x”


但是,我不确定如何将变量与复选框关联起来。。我是否需要按照使用jquery?

有很多方法可以解决这个问题。在我开始之前提醒我,永远不要在客户端做类似“计算价格”的事情。也就是说,您可以计算价格以便向用户显示,但是任何实际的计算都应该在服务器端完成,因为客户端可以调整和操作表单提交

我创建了一个简单的示例,该示例将统计选中复选框的结果,并简单地显示结果。有很多方法可以操作此代码以满足您的目的。我已经使用了jQuery,但是对于这个问题还有其他有趣的选项,例如checkout KnockoutJS

 <input type="checkbox" class="adjust one" data-value="1.00" id="so1" /> <label for="so1">$1.00</label> <br/>
 <input type="checkbox" class="adjust two" data-value="2.00" id="so2" /> <label for="so2">$2.00</label><br/>
 <input type="checkbox" class="adjust one" data-value="3.00" id="so3" /> <label for="so3">$3.00</label>

 <p>
   Total: <span class="total"></span>
 </p>
calculateTotal将根据与选中的选择器匹配的checkbox类型的复选框输入计算总计。然后从每个复选框中提取数据属性值,并根据该值计算总数。问题的逻辑可能会有所不同,但简单地调整calculateTotal就可以解决这个问题。最后,每当复选框被“更改”时以及最初一次调用calculateTotal函数


希望这对你的训练和跑步会有很大的帮助。这里是一个现场演示。

Jquery从来都不是必需的,但它总是一个加号。由于您正在学习javascript,我建议您暂时不要使用该框架

首先,您需要一张表格,如果您能向我们展示一下您的表格是什么样子的,那就更好了:

<form>

<input type="checkbox" id="first" /><label for="first">First Box</label> <br>
<input type="checkbox" id="second" /><label for="second">First Box</label> <br>

<input type="text" id="output" value="5.00"/>

</form>
现在是javascript

<script type="text/javascript">
  var first = document.getElementById("first");
  var second = document.getElementById("second");

  first.onchange = function () {
    if (this.checked == true) {
        document.getElementById("output").value = "new Value";
    }else {
        document.getElementById("output").value = "other Value";
    }
  }

  ... the same can be done for 'second' ....
</script>

我假设您正在修改前面问题中的重新计算函数。在该函数中,在您获得金额后,添加以下内容以应用折扣:

if ($("#chkBox1,#chkBox2").filter(":checked").length == 2)
{
    sum -= discount;
}
要将消息写入输出,请将$output.htmlsum代码修改为:

$("#output").html(sum + " Save $" + discount + " per month");
邮件和包裹收集-99美元/月呼叫应答-149美元/月呼叫转接-15美元/月,因此如果您同时选择邮件收集和呼叫应答,将以229美元而不是248美元的折扣价提供,但呼叫转接始终为15美元。
if ($("#chkBox1,#chkBox2").filter(":checked").length == 2)
{
    sum -= discount;
}
$("#output").html(sum + " Save $" + discount + " per month");