我不擅長腳本或編碼,所以如果這是一個愚蠢的問題,我真的很抱歉。JavaScript - 表單 - 驗證號碼和電子郵件
我有一個表格:
<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";
}
}
我懷疑我有一些根本性的錯誤在我的其他if語句((PATT == NULL || PATT ==正則表達式)!),或者它甚至構建正確,或者說,它應該即使是其他語句也是如此!但我似乎甚至無法理解我的邏輯。
任何幫助將是偉大的。謝謝,再次抱歉,如果這是一個愚蠢的問題。
以下是完整的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._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/");
if (a==null || a=="")
{
document.getElementById('email_required').innerHTML="required";
}
}
你應該注意到,大多數人要麼輸入空格或其他非0-9個字符的電話號碼,因此不應該被限制在0-9 – Novocaine
好吧,我假設您每次在該輸入框中輸入某個動作時都會調用該函數,因此您似乎缺少的一種情況是,一旦框內的輸入與您所尋找的內容匹配,就會清除內部html。 – Jayson
你甚至沒有測試你的正則表達式 –