我正在尝试构建一个表单计算javascript,它可以很好地处理单选按钮,但我一直无法让它与复选框一起工作。
该表单包含一个域whois复选框,该复选框生成名称为“domain”的复选框,其值是选中域的tld,其价格在同一个表单元格中回音。我成功地编写了一个js代码,它将选中的值与包含tld价格的数组中的数据相匹配。(见下文)
问题#1:复选框的值应该是整个域名(以便我可以在后面的$_POST中携带该变量)。
问题#2:当前工作的js不会添加相同tld的更多域(foo.com和bar.com的价格只增加一次,每次两次),因为与单选按钮工作良好的foo.com循环不能与多个检查一起工作。
--
我思考过的解决办法:
解决方案#1:将ID添加到复选框中,其名称为搜索域,其值为该域tld的价格,并将其推入js对象,在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"> </label>发布于 2014-08-17 10:37:34
广告问题1:您可能需要提供更多信息,例如如何生成html。据我所见,您只需将value设置为与id相同,对吗?
广告问题2:
替身
domaintldPrice = domaintld[chosenDomains[i].value];使用
domaintldPrice += domaintld[chosenDomains[i].value];并删除break
https://stackoverflow.com/questions/25348347
复制相似问题