Javascript 将空输入添加到值为0的数组中
作为一个项目,我正在构建一个“赤裸裸”的预算网络应用程序。我有一张表格,上面有许多输入,用来填写收入来源和金额Javascript 将空输入添加到值为0的数组中,javascript,arrays,input,Javascript,Arrays,Input,作为一个项目,我正在构建一个“赤裸裸”的预算网络应用程序。我有一张表格,上面有许多输入,用来填写收入来源和金额 <form> <div class="form-group"> <input type="text" class="form-control" id="incomeSrc1" placeholder="Enter Source" name="incomeSrc"> <input type="text"
<form>
<div class="form-group">
<input type="text" class="form-control" id="incomeSrc1" placeholder="Enter Source" name="incomeSrc">
<input type="text" class="form-control" id="incomeSrc2" placeholder="Enter Source" name="incomeSrc">
<input type="text" class="form-control" id="incomeSrc3" placeholder="Enter Source" name="incomeSrc">
<input type="text" class="form-control" id="incomeSrc4" placeholder="Enter Source" name="incomeSrc">
</div>
</form>
及
它们都没有返回true(执行随后的代码)
为什么AMOUNTAR或空incAmount与NaN/null/undefined相比不为真?在比较之前,您应该在条件中使用
parseFloat
将空值转换为NaN
-或者,您应该在条件中使用amountArr[i]
来检查它是否为NaN
此外,还应使用isNaN
函数检查NaN
值
if (isNaN(amountArr[i])) {
amountArr[i] = 0;
我找到了一个有效的解决方案
for (var i = 0; i < incAmount.length; i++) {
amountArr[i] = parseFloat(incAmount[i].value) || 0;
for(变量i=0;i
数组amountArr将为所有空输入显示0。定义了
incAmount
的位置?您可以在它前面加上0以避免检查。如果它不是NaN,则将值.var incAmount=document.getElementsByName(“incAmount”);插入到function@AnthonyVoelker我也试过类似的方法.value!==NaN然后插入值,ELSE=0。这也不起作用…我在上一次尝试中尝试使用parseFloat,但它抛出了一个未捕获的TypeError:无法读取HTMLInputElement.Add3处未定义的属性“value”。请检查填充incAmount
数组的位置。确保您放置了该值并且该值生效。inc的值Amount是一个节点列表,如上所述,编辑您的问题以包括设置incAmount
数组的部分
if (amountArr[i].value !== NaN)
if (isNaN(amountArr[i]))
if (isNaN(amountArr[i])) {
amountArr[i] = 0;
for (var i = 0; i < incAmount.length; i++) {
amountArr[i] = parseFloat(incAmount[i].value) || 0;