我不擅长编写脚本或编码,所以如果这是一个愚蠢的问题,我真的很抱歉。
我有一个表格:
<form name="userinfo" action="validform.html" method="post" onsubmit="return validateForm()">
<fieldset>
<legend>Personal Information</legend><br />
<label for="firstname">First Name:</label>
<input type="text" id="firstname" name="firstname">
<span id="firstname_required"></span><br />
<label for="surname">Surname:</label>
<input type="text" id="surname" name="surname">
<span id="surname_required"></span><br />
<label for="tel">Tel No:</label>
<input type="tel" id="tel" name="tel">
<span id="tel_required"></span><br />
<label for="email">Email:</label>
<input type="email" id="email" name="tel">
<span id="email_required"></span><br />
<label for="password">Password:</label>
<input type="password" id="password" name="password">
<span id="password_required"></span><br />
<label for="submit"></label>
<input type="submit" value="Submit!">
</fieldset>
</form>
表格效果很好。
我想验证电话号码,以便只能输入 0-9 之间的数字。我不担心长度或任何类似的摇滚乐。我只是想确保用户输入数字,然后我可以对此进行扩展。这是我的代码:
function validateNumber()
{
var a=document.forms["userinfo"]["tel"].value;
var patt=new RegExp("[0-9]");
if (a==null || a=="")
{
document.getElementById('tel_required').innerHTML="required";
}
else if (patt==null || patt !== RegExp )
{
document.getElementById('tel_required').innerHTML="numbers only allowed";
}
}
我怀疑我的 else if 语句 ((patt==null || patt !== RegExp )) 存在根本性错误,或者它的构造正确,或者它甚至应该是一个 else if 语句!但我什至无法在脑海中完全正确地理解逻辑。
任何帮助都会很棒。谢谢,如果这是一个愚蠢的问题,再次抱歉。
这是我到目前为止的完整 JavaScript 代码:
function validateForm()
{
var a=document.forms["userinfo"]["firstname"].value;
if (a==null || a=="")
{
document.getElementById('firstname_required').innerHTML="required";
}
var a=document.forms["userinfo"]["surname"].value;
if (a==null || a=="")
{
document.getElementById('surname_required').innerHTML="required";
}
validateNumber()
validateEmail()
var a=document.forms["userinfo"]["password"].value;
if (a==null || a=="")
{
document.getElementById('password_required').innerHTML="required";
return false;
}
}
function validateNumber()
{
var a=document.forms["userinfo"]["tel"].value;
var patt=new RegExp("[0-9]");
if (a==null || a=="")
{
document.getElementById('tel_required').innerHTML="required";
}
if (patt==null || patt !== RegExp )
{
document.getElementById('tel_required').innerHTML="numbers only allowed";
}
}
function validateEmail()
{
var a=document.forms["userinfo"]["email"].value;
var patt=new RegExp("/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/");
if (a==null || a=="")
{
document.getElementById('email_required').innerHTML="required";
}
}