Javascript排序表单无法计算时遇到问题
因此,当我试图使用javascript计算总数时,我的订单出现了一个空错误。我相信我已经做了一切。我在下面第13行得到一个以.innerHTML开头的错误Javascript排序表单无法计算时遇到问题,javascript,html,Javascript,Html,因此,当我试图使用javascript计算总数时,我的订单出现了一个空错误。我相信我已经做了一切。我在下面第13行得到一个以.innerHTML开头的错误 <script type="text/javascript"> function doTotals() { var strains = ['guptakush_', 'headbandguptakush_', 'purplejuicyfruitguptakush_', 'hibiscussunrise_', 'criticalk
<script type="text/javascript">
function doTotals() {
var strains = ['guptakush_', 'headbandguptakush_', 'purplejuicyfruitguptakush_', 'hibiscussunrise_', 'criticalkushguptakush_', 'columbiagoldguptakush_', 'grapeapeguptakush_', 'krishnakush_', 'durbinpoisonguptakush_', 'purpleeurkleguptakush_', 'columbiagoldafgani_', 'kandykushguptakush_', 'hibiscussunriseafgani_', 'afgani_', 'grapeapeafgani_', 'krishnaafgani_', 'hashplantafgani_', 'durbinpoisonafgani_'];
var priceStr = 'price';
var quantityStr = 'quantity';
var subtotalStr = 'subtotal';
var total = 0.00;
for (var i = 0; i < strains.length; i++) {
var price = document.getElementById(strains[i] + priceStr).value;
var quantity = document.getElementById(strains[i] + quantityStr).value;
document.getElementById(strains[i] + subtotalStr)
.innerHTML = parseInt(price) * parseInt(quantity);
total += price * quantity;
}
document.getElementById("finaltotal").innerHTML = total;
}
function setup() {
var lastCol = document.getElementById("subtotal_header");
var theForm = document.getElementById("orderform");
var amounts = document.getElementsByTagName("select");
for(var i = 0; i < amounts.length; i++){
amounts[i].onchange = doTotals;
}
}
window.onload = setup;
</script>
函数doTotals(){
变异株=【古普塔库什】、【头带古普塔库什】、【紫汁水果古普塔库什】、【木槿花古普塔库什】、【临界古普塔库什】、【哥伦比亚黄金古普塔库什】、【石墨古普塔库什】、【克里希纳库什】、【杜宾中毒古普塔库什】、【紫红色古普塔库什】、【哥伦比亚黄金古普塔库什】、【坎迪库斯古普塔库什】、【木槿花古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古,“hashplantafgani”、“Durbindositonafgani”];
var priceStr=‘价格’;
var quantityStr=‘数量’;
var小计STR=‘小计’;
var总计=0.00;
对于(var i=0;i
这里是与一个示例关联的HTML,它们都具有唯一的id和名称
<div class="form-group mb-3">
<label class="form-control-label" for="guptakush_quantity">Gupta Kush</label>
<input type="hidden" id="guptakush_price" value="1.00">
<select class="form-control-inline form-control-sm" id="guptakush_quantity" name="guptakush_quantity" size="1">
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
</select>
<input type="hidden" id="guptakush_subtotal">
</div>
<div class="input-group">
<div class="input-group-prepend">
<div class="input-group-text">$</div>
</div>
<input type="text" class="form-control-inline col-sm-1" id="finaltotal" name="finaltotal" placeholder="$0.00" readonly>
</div>
古普塔库什
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
$
完整示例:
另外,如果我可以在没有小计的情况下完成这项工作,因为我认为没有必要这样做,那将非常棒。很多问题:
元素在按ID选择时似乎不可填充(不确定是怎么回事,但将其更改为div有效)
元素,我用一个
替换它,以便您可以看到输出。您必须完成并为其他元素执行类似的操作。大量问题:
元素在按ID选择时似乎不可填充(不确定是怎么回事,但将其更改为div有效)在我的版本中,我修复了前两个问题。然后,对于第一个
元素,我将其替换为
,这样您就可以看到输出。您必须仔细检查并对其他元素执行类似的操作。问题是数组中包含许多div,而不是HTML中的div
第一项“guptakush”仅存在于html中
所以,如果您在设置值之前检查div是否存在,它将解决问题
+
最终结果不是html输入的,因此使用.value而不是.inerHTML输入新值
工作演示:
函数doTotals(){
变异株=【古普塔库什】、【头带古普塔库什】、【紫汁水果古普塔库什】、【木槿花古普塔库什】、【临界古普塔库什】、【哥伦比亚黄金古普塔库什】、【石墨古普塔库什】、【克里希纳库什】、【杜宾中毒古普塔库什】、【紫红色古普塔库什】、【哥伦比亚黄金古普塔库什】、【坎迪库斯古普塔库什】、【木槿花古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古,“hashplantafgani”、“Durbindositonafgani”];
var priceStr=‘价格’;
var quantityStr=‘数量’;
var小计STR=‘小计’;
var总计=0.00;
对于(var i=0;i
古普塔库什
0
1.
2.
3.
4.
5.
6.
7.
8.
9
10
$
问题在于数组中包含的div比HTML中的多
第一项“guptakush”仅存在于html中
所以,如果您在设置值之前检查div是否存在,它将解决问题
+
最终结果不是html输入的,因此使用.value而不是.inerHTML输入新值
工作演示:
函数doTotals(){
变异株=【古普塔库什】、【头带古普塔库什】、【紫汁水果古普塔库什】、【木槿花古普塔库什】、【临界古普塔库什】、【哥伦比亚黄金古普塔库什】、【石墨古普塔库什】、【克里希纳库什】、【杜宾中毒古普塔库什】、【紫红色古普塔库什】、【哥伦比亚黄金古普塔库什】、【坎迪库斯古普塔库什】、【木槿花古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古普塔库什】、【古,“hashplantafgani”、“Durbindositonafgani”];
var priceStr=‘价格’;
var quantityStr=‘数量’;
var小计STR=‘小计’;
var总计=0.00;
对于(var i=0;i