我有一个包含多个文本框的表单。用户将使用想要的文本框数量。当然有一个限制。如何使用JavaScript来确定有多少文本框包含数据?
示例:如果用户在三个文本框中输入了数字,我希望得到3作为结果。此外,使用此数字,我想要文本框的平均值(非空)。因此,如果三个文本框具有值,并且它们分别为56,78和78,我希望(56 + 78 + 78)/ 3。
Function send() {
val1 = parseFloat(document.form1.valeur_2.value);
if (isNaN(val1) == true ) val1=0;
val2 = parseFloat(document.form1.valeur_3.value);
if (isNaN(val2) == true ) val2=0;
val3 = parseFloat(document.form1.valeur_4.value);
if (isNaN(val3) == true ) val3=0;
val4 = parseFloat(document.form1.valeur_5.value);
if (isNaN(val4) == true ) val4=0;
val5 = parseFloat(document.form1.valeur_6.value);
if (isNaN(val5) == true ) val5=0;
document.form1.total.value = val1 + val2 + val3 + val4 + val5
}
我想除以用户输入的文本框的数量 得到平均值
答案 0 :(得分:1)
您需要计算找到的有效值的数量。
您可以简单地使用两个变量:
最后,您将返回除数和/作为平均值。
在没有字段包含值的情况下,请注意除以0。
答案 1 :(得分:0)
从我看到的情况来看,你需要另一个带有循环的计数器来计算NaN的出现次数 - 否则,输入的0将不会被评估。
一旦你有了这个,你可以轻松地除以那个计数器。所以你能做的就是:
Function send() {
count = 0;
val1 = parseFloat(document.form1.valeur_2.value);
if (isNaN(val1) != true ) {
count++;
} else {
val1 = 0;
}
// repeat this for the other numbers as well
val2 = parseFloat(document.form1.valeur_3.value);
if (isNaN(val2) == true ) val2=0;
val3 = parseFloat(document.form1.valeur_4.value);
if (isNaN(val3) == true ) val3=0;
val4 = parseFloat(document.form1.valeur_5.value);
if (isNaN(val4) == true ) val4=0;
val5 = parseFloat(document.form1.valeur_6.value);
if (isNaN(val5) == true ) val5=0;
document.form1.total.value = (val1 + val2 + val3 + val4 + val5) / count;
}
答案 2 :(得分:0)
有更优雅的方法可以做到这一点,但使用普通的Javascipt并保持它(希望)很容易理解:
var btn = document.getElementById("calc");
btn.addEventListener("click", function() {
var total = 0;
var count = 0;
var values = document.getElementsByClassName("value");
for (var i = 0; i < values.length; i++) {
var num = parseFloat(values[i].value);
if (!isNaN(num)) {
total += num;
count++;
}
}
var totalTb = document.getElementById("total");
totalTb.value = count ? total / count : "NaN";
});
<form id="form1">
<input class="value" type="text"/>
<input class="value" type="text"/>
<input class="value" type="text"/>
<input class="value" type="text"/>
<input class="value" type="text"/>
<br/><input type="text" id="total" readonly/>
<input type="button" id="calc" value="calculate"/>
</form>
我们将一个类附加到输入中,以便我们可以使用getElementsByClassName
选择它们。然后我们遍历该集合并尝试解析每个集合中的值。如果它是有效数字(即isNaN
返回false
),我们会将其添加到正在运行的总数中,并增加一个计数器,表明我们找到了多少个值。在循环之后,我们只需将总数除以计数(在检查计数大于0
之后)。