【问题标题】:Javascript checkbox calculationJavascript复选框计算
【发布时间】:2014-10-10 11:36:18
【问题描述】:

我正在尝试构建一个与单选按钮配合使用的表单计算 javascript,但我无法使其与复选框配合使用。

该表单包含一个域 whois 检查,它生成名称为 'domain' 的复选框,值是检查域的 tld,其价格在同一个表格单元格中回显。我设法编写了一个 js 代码,该代码将检查的值与包含 tld 价格的数组中的数据相匹配。 (见下文)

问题#1:复选框的值应该是整个域名(这样我以后可以用 $_POST 携带该变量

问题 #2:由于 与单选按钮配合良好的 for 循环不能用于多项检查

--

我考虑过的解决方案:
解决方案 #1:将 ID 添加到复选框,其名称为搜索的域,其值为该域 tld 的价格,并将它们推送到 js 对象中for 循环可以将选中的与它们的价格相匹配 - 与问题 #1 冲突,尽管我想我可以使用 jQuery 获取所有选中的复选框并将它们附加到 PHP 稍后可以处理的隐藏输入在 (?)..

解决方案#2:让 js 从其所在的表格单元格中获取域的价格并将其相加。 -- 问题:如果表格单元格的ID取决于搜索的域,我如何让js获取价格?

这是当前工作的仅处理复选框的 js:

var domaintld = new Array();
 domaintld["com"]=3000;
 domaintld["eu"]=3650;
 domaintld["org"]=3650;
 domaintld["net"]=2850;
 domaintld["info"]=4050;

function calcdomaintldPrice() {
   var domaintldPrice=0;
   var theForm = document.forms["orderform"];
   var chosenDomains = theForm.elements["domain"];

for(var i=0; i < chosenDomains.length; i++) {
   if(chosenDomains[i].checked) {
   domaintldPrice = domaintld[chosenDomains[i].value];
   break;
   }
}

return domaintldPrice;
}

这是一个复选框标记的示例:

<input type="checkbox" name="domain" value="net" id="dfbdfb.net" class="domainradio"
onclick="calculateTotal()"><label for="dfbdfb.net" class="domainradio">&nbsp;</label>

【问题讨论】:

    标签: javascript forms checkbox jquery-calculation


    【解决方案1】:

    广告问题 1:您可能需要提供更多信息,例如 html 是如何生成的。据我所知,您可以将value 设置为与id 相同,不是吗?

    广告问题2:

    替换

    domaintldPrice = domaintld[chosenDomains[i].value];
    

    domaintldPrice += domaintld[chosenDomains[i].value];
    

    并删除break

    【讨论】:

    • P1:我可以将值设置为与 ID 相同,但循环无法将其与预定义的数组列表匹配。因为那时的值将是“foo.net”而不是“net”。 P2:对,我不知道为什么我没有想到这一点。谢谢。
    • @BertSlater 你可以使用split()提取顶级域名
    • 昨天试过了。获取 selectedDomains 数组并将其子串化,因此我只得到点之后的部分,将其推入另一个数组。不起作用,因为检查必须与第一个数组匹配,而不是第二个包含 tld 的数组。
    • var tld = chosenDomains[i].value.split('.').pop(); domaintldPrice += domaintld[tld];
    猜你喜欢
    • 1970-01-01
    • 2020-02-17
    • 2021-10-07
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2020-01-03
    • 2012-11-02
    相关资源
    最近更新 更多