[英]How to show different error messages in form validation
I have one form with different input types.Here I need to show error message depends on the user's input. 我有一个具有不同输入类型的表单。在这里,我需要根据用户输入显示错误消息。
If fields are empty,I will show Enter required fields
. 如果字段为空,我将显示Enter required fields
。
If email is invalid I need to show Enter valid email
. 如果电子邮件无效,则需要显示Enter valid email
。
But My code displays only Enter valid email
message even fields are empty.why its displaying like this?What wrong with my code? 但是我的代码只显示Enter valid email
消息,即使字段为空。为什么这样显示?我的代码有什么问题?
$(document).ready(function () { $('#errorMsg').hide(); }) function submitForm() { $('#myForm').find('input,select').each(function () { var element = $(this).val() == undefined ? '' : $(this).val().trim(); if (element == '') { $(this).addClass('borderDanger'); $('#errorMsg').html('Enter all required fields'); $('#errorMsg').show(); } else { $(this).removeClass('borderDanger'); $('#errorMsg').html(''); $('#errorMsg').hide(); } }) $('#myForm').find('input[type="email"]').each(function () { var emailRejex = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/; if (String($(this)).match(emailRejex)) { $(this).removeClass('borderDanger'); $('#errorMsg').html(''); $('#errorMsg').hide(); } else { $(this).addClass('borderDanger'); $('#errorMsg').html('Enter valid Email'); $('#errorMsg').show(); } }) }
#errorMsg { width: 60%; padding: 9px; z-index: 9; margin-top: 4%; color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; border-radius: 4px; right: 5%; font-weight: bold; } .borderDanger { border:1px solid red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="errorMsg"></div> <div id="myForm"> <input type="text"> <input type="email"> <button onclick="submitForm()">Submit</button> </div>
$('#errorMsg').html('Enter valid Email');
This part replace what ever is in '#errorMsg' , better way to show errors is liket this: (generate error variable with your error/errors then show at once) 这部分替换了'#errorMsg'中的内容,显示错误的更好方法是这样的:(使用您的错误生成错误变量,然后立即显示)
var errors = [];
if(error){
errors.push("error 1");
}
if(error){
errors.push("error 2");
}
then show them at once: 然后立即显示它们:
$('#errorMsg').html(errors);
$('#errorMsg').show();
like this 像这样
// Code goes here $(document).ready(function () { $('#errorMsg').hide(); }) function submitForm() { var errors = '' $('#myForm').find('input,select').each(function () { var element = $(this).val() == undefined ? '' : $(this).val().trim(); if (element == '') { $(this).addClass('borderDanger'); errors += 'Enter all required fields </br>' $('#errorMsg').html(errors); $('#errorMsg').show(); } else { if($(this).attr('type') == 'email'){ var emailRejex = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$/; if (String($(this)).match(emailRejex)) { $(this).removeClass('borderDanger'); $('#errorMsg').html(''); $('#errorMsg').hide(); } else { $(this).addClass('borderDanger'); errors += 'Enter valid Email' $('#errorMsg').html(errors); $('#errorMsg').show(); } } $(this).removeClass('borderDanger'); } }) $('#myForm').find('input[type="email"]').each(function () { }) }
#errorMsg { width: 60%; padding: 9px; z-index: 9; margin-top: 4%; color: #a94442; background-color: #f2dede; border: 1px solid #ebccd1; border-radius: 4px; right: 5%; font-weight: bold; } .borderDanger { border:1px solid red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="errorMsg"></div> <div id="myForm"> <input type="text" /> <input type="email" /> <button onclick="submitForm()">Submit</button> </div>
Try this if you don't want invalid email message when textbox is empty 如果不想在文本框为空时发送无效的电子邮件,请尝试此操作
$('#myForm').find('input[type="email"]').each(function () {
//Check if email is empty
var element = $(this).val() == undefined ? '' :$(this).val().trim();
if (element == '') return;
var emailRejex = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
if (String($(this)).match(emailRejex)) {
$(this).removeClass('borderDanger');
$('#errorMsg').html('');
$('#errorMsg').hide();
}
else{
$(this).addClass('borderDanger');
$('#errorMsg').html('Enter valid Email');
$('#errorMsg').show();
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.