我输入的是带有年龄字段的HTML格式的年龄。我想将年龄输入作为数字,所以我将年龄字段定义为数字类型。我正在检查javascript代码if(typeof name === "string" && isNaN("age") ==="false")
。我在调试过程中发现typeof age
是 string 。我不知道它是如何转换为字符串类型的自动。
我附上了我的HTML和javascript代码.Plz帮助...
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery- 1.11.3.min.js"></script>
</head>
<script src="form_js.js"></script>
<body>
<form id="myForm">
First Name:
<input type="text" id="field1">
<br> Last Name:
<input type="text" id="field2">
<br> Age:
<input type="number" id="field3">
<br>
<br> Gender:
<select id="field5">
<option value="Male">Male</option>
<option value="Female">Female</option>
</select>
</form>
<p>
<input type="button" onclick="insRow('Table1')" value="Insert">
</p>
<table id="Table1" style="width:100%">
<tr>
<td>Name</td>
<td>Age</td>
<td>Gender</td>
</tr>
</table>
</body>
</html>
使用Javascript:
var count = 0;
function insRow() {
count += 1;
var x, y, z, a, w;
var w = document.getElementById('Table1').insertRow(count);
var name = $("#field1").val() + " " + $("#field2").val();
//var age = $('#field3').val();
//var age = $('#myForm :field3');
//var Email = $("#field4").val();
var gender = $("#field5").val();
//w = document.getElementById('Table1').insertRow(count);
//var first_name = document.getElementById("field1").value;
//var last_name = document.getElementById("field2").value;
var age = document.getElementById("field3").value;
//var gender = document.getElementById("field5").value;
if (typeof name === "string") //&& isNaN("age") ==="false")
{
x = w.insertCell(0);
y = w.insertCell(1);
a = w.insertCell(2);
x.innerHTML = name //" " + last_name;
y.innerHTML = age;
a.innerHTML = gender;
document.getElementById("myForm").reset();
} else alert("Invalid Data");
//var rows += "<tr><td>" + name + "</td><td>" + age + "</td><td>" + Email + "</td><td>" + Gender +"</td></tr>";
//$("#Table1 tbody").append(rows);
}
答案 0 :(得分:3)
当您从HTML获取任何值时,默认情况下为string
。要将其转换为数字,请根据您的要求使用parseInt
或parseFloat
。
parseInt()函数解析字符串参数并返回指定基数的整数(数学系统中的基数)。
var age = parseInt(document.getElementById("field3").value, 10);
OR
parseFloat()函数解析字符串参数并返回浮点数。
var age = parseFloat(document.getElementById("field3").value);
当您检查NaN
时,请使用不带引号的变量age
。严格比较false
应该没有引号。
isNaN("age") ==="false")
应该是
isNaN(age) === false) // Without quotes for age and false
答案 1 :(得分:0)
请注意document.getElementById(someId).value
将始终返回字符串类型(如果有)。有几种解析方法,例如parseInt()
,parseFloat()
以及+()
var str = document.getElementById('num').value;
var num = +(str);
alert("Type of " + num + " is " + (typeof num));
var price = +(document.getElementById('price').value);
alert("Type of " + price + " is " + (typeof price));
&#13;
<input type="text" id="num" value="56" />
<input type="text" id="price" value="9.13" />
&#13;