我被困在我的表单的一小部分 - 我想使它只是街道地址字段的第一个字符是数字,其余的可以是任何东西。我已经使用indexOf和reg ex来摆弄。我接近,但并不完全。Javascript表单验证 - 只有第一个字符必须是数字
任何建议,将不胜感激!
window.onload=function()
{
document.forms[0].onsubmit=function()
{
for(i = 0; i < this.elements.length; i++)
{
//alert required field
if(this.elements[i].className.indexOf("required") != -1)
{
if(this.elements[i].value == "")
{
alert("required field");
this.elements[i].focus();
return false;
}
}
//username requirements
var userLength = document.getElementById("user")
if((userLength.value.length < 5) || (userLength.value.length > 10))
{
alert("username must be between 5-10 characters");
return false;
}
//email address requirements
var emailMust = document.getElementById("email")
if((emailMust.value.indexOf("@") == -1) || (emailMust.value.indexOf(".") == -1))
{
alert("email must contain proper characters");
return false;
}
//address requirements
var address = document.getElementById("address")
var regex = new RegExp('/^[0-9]{1}[a-zA-Z0-9]$/');
if(address.match(regex))
{
alert("address must begin with a number");
return false;
}
//birth year requirements
var birthYear = document.getElementById("birth")
if(isNaN(birthYear.value))
{
alert("birth year must be a number");
return false;
}
}
}
}
here`s我的HTML部分:
<form action="#">
<p><label for="user">Username:</label>*</p>
<p><input type="text" class="required" id="user"></p>
<p><label for="email">Email Address:</label>*</p>
<p><input type="text" class="required" id="email"></p>
<p><label for="address">Street Address:</label></p>
<p><input type="text" id="address"></p>
<p><label for="birth">Year of birth:</label>*</p>
<p><input type="text" class="required" id="birth"></p>
<br>
<input type="submit">
<p><i>* required field</i></p>
谢谢!这是一个很好的修改,但是我发现第51行有一个address.match错误不是函数? – amapeli
是地址字符串吗? – linstantnoodles
另请参阅我的更新。你不应该需要正斜杠。 – linstantnoodles