Я делаю сайт с множеством форм.Я пытаюсь сделать свои коды эффективными и гибкими, используя проверку формы Javascript.Я хочу отображать сообщение об ошибке рядом с каждым полем в формах, если они введены неправильно
Проблемы: 1. функция «chkfrmRegister» не работает 2. elem.value работает, когда закомментировано «chkfrmRegister».3. не может пролистывать поля, если поле введено неправильно.4. при отправке сообщения об ошибках не появляются рядом с полями, которые были введены неправильно (возможно, это вызвано тем, что "chkfrmRegister" не работает)
Вот тестовая версия моих кодов:
HTML
<html>
<head>
<script src="validate.js">
</script>
</head>
<body>
<form id="frmRegister" method="post" action="">
<ul>
<li>
<label id="lFname" for="lFname">First Name*</label>
<input id="iFname" name="iFname" class="text" size="38" maxlength="30" onblur="chkAlphabet(iFname, 'Please enter letters only')" />
</li>
<li><input id="iFnameMsg" class="errorStr" /></li>
<li>
<label id="lLname" for="lLname">Last Name*</label>
<input id="iLname" name="iLname" class="text" size="38" maxlength="20" onblur="chkAlphabet(iLname, 'Please enter alphabets only')" />
</li>
<li><input id="iLnameMsg" class="errorStr" /></li>
<li>
<label id="lEmail" for="lEmail">Email*</label>
<input id="iEmail" name="iEmail" class="text" size="38" maxlength="30" onblur="chkEmail(iEmail, 'Please enter a valid e-mail')" />
</li>
<li><input id="iEmailMsg" class="errorStr" /></li>
<li>
<label id="lContactNo" for="lContactNo">Contact No.*</label>
<input id="iContactNo" name="iContactNo" class="text" size="38" maxlength="16" onblur="chkNumeric(iContactNo, 'Please enter numbers only')" />
</li>
<li><input id="iContactNoMsg" class="errorStr" /></li>
<li><br />
</li>
<li>
<!--<input type='submit' onclick="chkfrmRegister()" value='Register' />-->
<input type='submit' value='Register' />
</li>
</ul>
</form>
</body>
</html>
JAVASCRIPT
function chkfrmRegister(){
var firstname = $("#iFname");
var lastname = $("#iLname");
var email = $("#iEmail");
var contactno = $("#iContactNo");
// Check each input in the order that it appears in the form!
if(chkAlphabet(firstname, "Please enter letters only")){
if(chkAlphabet(lastname, "Please enter letters only")){
if(chkEmail(email, "Please enter a valid email address")){
if(chkNumeric(contactno, "Please enter numbers only. No space or special characters")){
return true;
}
}
}
}
return false;
}
function chkAlphabet(elem, helperMsg){
var alphaExp = /^[a-zA-Z]+$/;
if(elem.value.match(alphaExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
function chkNumeric(elem, helperMsg){
var numericExpression = /^[0-9]+$/;
if(elem.value.match(numericExpression)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
function chkEmail(elem, helperMsg){
var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
if(elem.value.match(emailExp)){
return true;
}else{
alert(helperMsg);
elem.focus();
return false;
}
}
Что мне здесь не хватает?Может кто-нибудь, пожалуйста, посоветуйте?Спасибо!