gpt4 book ai didi

javascript - 为什么我的 JavaScript 函数不返回已检查的数组值?

转载 作者:行者123 更新时间:2023-11-30 16:58:29 25 4
gpt4 key购买 nike

在下面的代码中,我的 alert() 在应该返回选中框值时返回了 0。我需要它返回与复选框关联的指定数组中的值。

<!DOCTYPE html>
<html>
<head> <title> Program 4 Parallel Arrays </title>
<style type="text/css"></style>

<script type="text/javascript">
var priceArray = [45.25, 24.88, 32.35, 27.33,
34.85, 36.24, 85.33, 45.32];
var pageArray = [1098, 536, 500, 792, 912, 1224, 899, 504];

function funRun () {
var totalPages = 0;
for(i=0; i<document.bookForm.books[i].length; i++) {
if(document.bookForm.books[i].checked == true) {
totalPages = totalPages + pageArray[i];
}
}
alert("totalPages : " + totalPages);
}

function funRun1 () {
var subTotal = 0;
for(i=0; i<document.bookForm.books[i].length; i++) {
if(document.bookForm.books[i].checked == true) {
subTotal = subTotal + priceArray[i];
}
}
alert("subTotal : " + subTotal);
}

tax = (.06 * subTotal)
total= (subTotal + tax)
</script>
</head>
<body>

<form name="bookForm">
<input type="checkbox" name="books" value="Flanagan" />
JavaScript, the Definitive Guide: $45.25 <br>
<input type="checkbox" name="books" value="McFarland" />
JavaScript & JQuery: The Missing Manual: $24.88 <br>
<input type="checkbox" name="books" value="Morrison" />
Head First JavaScript: $32.35 <br>
<input type="checkbox" name="books" value="Wilton&McPeak" />
Beginning JavaScript: $27.33 <br>
<input type="checkbox" name="books" value="Quigley" />
JavaScript by Example: $34.85 <br>
<input type="checkbox" name="books" value="Goodman" />
JavaScript Bible: $36.24 <br>
<input type="checkbox" name="books" value="Gosselin" />
JavaScript: The Web Technologies Series: $85.33 <br>
<input type="checkbox" name="books" value="Suehring" />
JavaScript Step by Step: $45.32 <br>
<br>
<input type="button"
value="Calculate Total"
onclick="funRun();funRun1()"/>

<input type="reset"/>
<br>
<br>
<input type="text" name="totalPages"/>Total Pages<br>
<input type="text" name="subTotal"/>Subtotal<br>
<input type="text" name="tax"/>Tax<br>
<input type="text" name="total"/>Total</p>

</body>
</html>

最佳答案

问题出在您的 for 循环 上。

使用:

for(i=0; i<document.bookForm.books.length; i++) {

代替:

for(i=0; i<document.bookForm.books[i].length; i++) {

原因是您不应该在大小定义处访问数组元素。

此外,由于 subTotal 变量未在 funRun1() 函数中定义,因此以下 block 返回一个 ReferenceError:

tax = (.06 * subTotal)
total= (subTotal + tax)

关于javascript - 为什么我的 JavaScript 函数不返回已检查的数组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29269992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com