Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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,好的,我这里有一个独特的,我一直在搜索谷歌和stackoverflow,没有找到任何符合我需要的东西。这是我得到的 我在一个表单中有三个复选框,它们代表3个不同的“事件”。我需要的是,如果一个人选中任何一个复选框,总数是30美元。如果他们勾选其中任何两个方框,总额为40美元,如果他们勾选所有三个方框,总额为50美元。因为他们可能会选中任何一个、两个或所有3个框,所以我无法在值中静态设置价格。我需要的东西大致上说:“如果选择1盒,价格是30美元,如果选择2盒,价格是40美元,如果选择3盒,价格是5

好的,我这里有一个独特的,我一直在搜索谷歌和stackoverflow,没有找到任何符合我需要的东西。这是我得到的

我在一个表单中有三个复选框,它们代表3个不同的“事件”。我需要的是,如果一个人选中任何一个复选框,总数是30美元。如果他们勾选其中任何两个方框,总额为40美元,如果他们勾选所有三个方框,总额为50美元。因为他们可能会选中任何一个、两个或所有3个框,所以我无法在值中静态设置价格。我需要的东西大致上说:“如果选择1盒,价格是30美元,如果选择2盒,价格是40美元,如果选择3盒,价格是50美元”

我对PHP和mySQL很在行,我知道我可以用PHP实现这一点,但我必须在价格更新之前先提交表单,这就是为什么我需要javascript在用户选中/取消选中框时更新价格。谢谢大家的回复

使用:

var cont=$('#yourContainerId'),nbSelected=$(':checkbox:checked',cont).length,result=0;
if(nbSelected==1) result=30;
else if(nbSelected==2) result=40;
else if(nbSelected==3) result=50;
return result;
使用:


这里有一些东西应该让你开始-这都是基于这样的假设,即在你的整个页面上只有3个复选框,并且你对它们都感兴趣-你会想让这样的方法响应你的复选框元素的onclick事件-我发现这比onchange更可靠

        function updateTotal() {
            var checked = 0;
            var inputs = document.getElementsByTagName("INPUT");
            for (var i = 0; i < inputs.length; i++) {
                if (/checkbox/i.test(inputs[i].type) && inputs[i].checked) {
                    checked++;
                }
            }

            var priceInDollars = 0;
            switch (checked) {
                case 1:
                    priceInDollars = 30;
                    break;
                case 2:
                    priceInDollars = 40;
                    break;
                case 3:
                    priceInDollars = 50;
                    break;
            }

            var priceElement = document.getElementById("the id of your element where you'll print the price");
            priceElement.innerText = "$".concat(priceInDollars.toString());
        }
函数updateTotal(){
var=0;
var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i
编辑:


我还不是一个JQuery高手-我喜欢JQuery的答案,因为它比我更能检索计数-更干净

这里有一些应该让您开始的东西-这都是基于这样的假设,即整个页面上只有3个复选框,并且您对所有复选框都感兴趣-您需要让这样的方法响应您的复选框元素的onclick事件-我发现这比onchange更可靠

        function updateTotal() {
            var checked = 0;
            var inputs = document.getElementsByTagName("INPUT");
            for (var i = 0; i < inputs.length; i++) {
                if (/checkbox/i.test(inputs[i].type) && inputs[i].checked) {
                    checked++;
                }
            }

            var priceInDollars = 0;
            switch (checked) {
                case 1:
                    priceInDollars = 30;
                    break;
                case 2:
                    priceInDollars = 40;
                    break;
                case 3:
                    priceInDollars = 50;
                    break;
            }

            var priceElement = document.getElementById("the id of your element where you'll print the price");
            priceElement.innerText = "$".concat(priceInDollars.toString());
        }
函数updateTotal(){
var=0;
var inputs=document.getElementsByTagName(“输入”);
对于(变量i=0;i
编辑:


我还不是一个JQuery高手-我喜欢JQuery的答案,因为它比我更能检索计数-更干净

嗯。。。已经有几个人回答了,但我喜欢我的方式。。。所以我会把它贴出来


纯javascript和DOM,因此无需修改库。

好吧。。。已经有几个人回答了,但我喜欢我的方式。。。所以我会把它贴出来


纯javascript和DOM,因此无需修改库。

我希望您不打算使用表单提交的价格作为任何东西的实际价格,否则我将从您的网站上获得一些免费内容。不是真的,这只是告知他们价格,稍后,他们将被定向到paypal,价格将是我提到的PHP/MySQL,价格取决于他们在数据库中注册了多少个事件。即使他们成功破解了,他们仍然必须在参加任何活动之前出示收据,而且他们必须是注册用户才能首先付款。所以不管怎样,我们都知道谁付了什么。谢谢你的关心;)我希望你不打算用表格上的价格作为任何东西的实际价格,否则我会从你的网站上得到一些免费的东西。不是真的,这只是告诉他们价格,稍后,他们将被定向到paypal,价格将是我提到的PHP/MySQL,价格取决于他们在数据库中注册了多少个事件。即使他们成功破解了,他们仍然必须在参加任何活动之前出示收据,而且他们必须是注册用户才能首先付款。所以不管怎样,我们都知道谁付了什么。谢谢你的关心;)达姆,谢谢你的快速回复。我对jQuery几乎一无所知。你能告诉我怎么用这个吗?我试图用逻辑的方式来理解它,但到目前为止我还没有足够的理解来实现它。这是否包含在javascript之类的脚本标记中?如何将“result”的值计入“Total”?@Scott如果您还没有使用jQuery,Brian的解决方案可能更适合您的需要。1。在任何其他jquery脚本之前加载页面标题中的jquery(使用google cdn,它将为您节省带宽:)2.将我的代码放在页面中的脚本标记中,放在$.ready(function(){var cont=$('#yourContainerId');$(':checkbox',cont)中。单击(funct)