jQuery .val()无法使用parseInt转换为Int

时间:2017-10-07 09:57:28

标签: javascript jquery string int equation

我试过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;
&#13;
&#13;

我尝试将字段转换为type="number"。我使用.val()方法,因为我理解.val()将提取表单字段的实际值,而不是对表单字段的对象引用。

1 个答案:

答案 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);

DEMO:https://plnkr.co/edit/D5YcsQGJzqqIUbou0rxI?p=info