我一直试图获取表中4个输入的值,并使用for循环得到输入数字的总和,但我一直得到0(我定义的总和)
调试了一切,我很确定问题出在" var x" - 它只是从输入中获得了任何信息。
import scala.collection.mutable
import org.apache.spark.mllib.clustering.LDA
import org.apache.spark.mllib.linalg.{Vector, Vectors}
import org.apache.spark.rdd.RDD
object Simple {
def main(args: Array[String]) {

$(function () {
$("#inventoryForm").submit(function (event) {
var table = $("table")
var error = false;
event.preventDefault();
$(".inventoryInput").each(function(){
if($(this).val() < 0) {
error = true; //Indicate there was an error
$("#inventoryError").slideDown().text("Positive numbers only");
return false; //This stops the iteration
}
});
//Stop processing if there was an error
if (error) return;
if (!error) {
$("#inventoryError").hide();
}
$("#inventorySubmit").hide();
$("#inventoryChange").show();
$("#withdraw").show();
$(".inventoryInput").attr('disabled','disabled');
var sum = 0;
var money = table.find("td:nth-child(2)");
for (var i = 0; i<money.length; i++) {
var x = money.eq(i).val();
sum += x;
$("#totalMoney").text(sum);
}
console.log(money);
});
$("#inventoryChange").click(function () {
$("#inventorySubmit").show();
$("#inventoryChange").hide();
$("#withdraw").hide();
$(".inventoryInput").removeAttr('disabled');
});
});
&#13;
.hidden {
display: none;
}
.error {
display: none;
color: red;
border: dotted 3px yellow;
padding: 10px;
}
&#13;
答案 0 :(得分:2)
问题确实存在于
var x = money.eq(i).val();
money
是tds
的数组。所以money.eq(i)
是一个td。你想要的是实际的input
。所以解决方案是
var x = money.eq(i).find('input').val();
详细说明你的进一步表扬。如果您使用
填写所有4个输入var x = parseInt(money.eq(i).find('input').val());
它会按预期加总。当其中一个输入为空时它会抛出NaN
因为parseInt('')
返回NaN
,所以你应该检查输入是否实际有值..
var input = money.eq(i).find('input').val();
var x = input ? parseInt(input) : 0
进一步解释我的代码。
var input = money.eq(i).find('input').val();
这将获得实际输入的值,无论该值是什么。
var x = input ? parseInt(input) : 0
检查输入的值是否为空。如果为空,则为x=0
,否则为x=parseInt(input)
。因此,如果输入不为空,则将该值解析为int
并分配给x
。
sum += x
x被添加到最终总和中。