我试过parseInt()
无济于事。我仍然使用此代码获取NaN错误...
$("#belt-length").on("input", function(){
var length = parseInt($("#belt-length").val(), 10);
var width = parseInt($("#belt-width").val(), 10);
if(length > 0 && width > 0) {
var squaremm = length * width;
var square = squaremm / 1000000;
$("#belt-square-meters").html(square.toString() + "m<sup>2</sup>");
} else {
$("#belt-square-meters").html("0.00 m<sup>2</sup>");
};
});
$("#belt-width").on("input", function(){
var length = parseInt($("#belt-length").val(), 10);
var width = parseInt($("#belt-width").val(), 10);
if(length > 0 && width > 0) {
var squaremm = length * width;
var square = squaremm / 1000000;
$("#belt-square-meters").html(square.toString() + "m<sup>2</sup>");
} else {
$("#belt-square-meters").html("0.00 m<sup>2</sup>");
};
});
&#13;
我尝试将字段转换为type="number"
。我使用.val()
方法,因为我理解.val()
将提取表单字段的实际值,而不是对表单字段的对象引用。
答案 0 :(得分:0)
1。当然,您可以通过.val()
将parseInt
结果转换为integert。 parseInt
方法接受字符串作为第一个参数(MDN. parseInt),而.val()
返回“FIRST匹配元素的值属性的值”(W3Schools. jQuery val() Method),这是字符串在文本输入案例中(W3Schools. Input Text value Property)。所以你的代码没有问题,你的(length > 0 && width > 0)
NaN保护在这里很常见。
2。我建议做一些重构。将处理程序解压缩到单个函数中并简化输出:
function processInput() {
var length = parseInt($("#belt-length").val(), 10);
var width = parseInt($("#belt-width").val(), 10);
var square = '0.00';
if(length > 0 && width > 0) {
var squaremm = length * width;
square = squaremm / 1000000;
}
$("#belt-square-meters").html(square + "m<sup>2</sup>");
}
$("#belt-length").on("input", processInput);
$("#belt-width").on("input", processInput);