0

我正在尝试构建一个可以与单选按钮一起正常工作的表单计算 javascript,但我无法使其与复选框一起使用。

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

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

问题 #2:当前工作的 js 没有添加更多相同 tld 的域(foo.com 和 bar.com 的价格只添加一次,或者两次),因为适用于单选按钮的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>
4

1 回答 1

0

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

广告问题2:

代替

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

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

并删除break

于 2014-08-17T10:37:34.650 回答