我使用HTML和javascript格式的表单。我希望只有在用户输入字母并单击submit
时才弹出警报。
所以我有HTML代码:
<form name="myForm" action="" onsubmit="return checkInp()" method="post">
First name: <input type="text" name="age">
<input type="submit" value="Submit">
和javascript代码:
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (x consists of any letters) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
发布于 2013-08-04 18:56:00
您可以使用isNaN函数来确定值是否未转换为数字。示例如下:
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (isNaN(x))
{
alert("Must input numbers");
return false;
}
}
发布于 2013-08-04 19:02:16
使用Regular Expression仅匹配字母。如果你需要做一些更复杂的事情,比如确保它是一个特定的数字计数,了解一下也是很好的。
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
var regex=/^[a-zA-Z]+$/;
if (!x.match(regex))
{
alert("Must input string");
return false;
}
}
更好的办法是否认数字以外的任何东西:
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
var regex=/^[0-9]+$/;
if (x.match(regex))
{
alert("Must input numbers");
return false;
}
}
发布于 2013-08-04 18:54:33
您可以使用isNaN函数。如果数据不是数字,则返回true。应该是这样的:
function checkInp()
{
var x=document.forms["myForm"]["age"].value;
if (isNaN(x)) // this is the code I need to change
{
alert("Must input numbers");
return false;
}
}
注意: isNan将10.2视为有效数字。
https://stackoverflow.com/questions/18042133
复制相似问题