이메일 유효성 검사에 처음입니다. 아무도 내가 제대로 작동하지 않는 이유를 알아낼 수 있습니다. 이름, 암호, 확인 암호, 전자 메일 및 URL 필드가 들어있는 간단한 양식이 있습니다. 이 필드들에 오류가 있으면 양식을 처리하고 싶지 않습니다. 오류가 나타나지 않으면 메시지를 표시하고 싶습니다 your form is submitted succesfully
. 여기 클라이언트 측 JavaScript 유효성 검사가 작동하지 않습니다.
HTML :
이<form id='contactForm'>
<label for='firstAndLastname'></label>
<input type='text' data-count='0' placeholder='Firstname Lastname' name='firstAndLastname' class='fName' />
<span></span>
<label for='password'></label>
<input type='password' data-count='1' placeholder='Password' name='password' class='password' />
<span></span>
<label for='confirmPassword'></label>
<input type='password' placeholder='Confirm Password' name='confirmPassword' class='confirmPassword' />
<span></span>
<label for='email'></label>
<input type='email' data-count='2' placeholder='Email' name='email' class='email' />
<span></span>
<label for='url'></label>
<input type='url' data-count='3' placeholder='Website' name='url' class='url' />
<span></span>
<input type='submit' id='submit' value='Submit' />
</form>
CSS :
이input {
display: block;
margin: 10px 0;
}
자바 스크립트 :
//url validation
function validateURL(url){
var urlRegExp = /^(http|https):\/\/(([a-zA-Z0-9$\-_.+!*'(),;:&=]|%[0-9a-fA-F]{2})[email protected])?(((25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])(\.(25[0-5]|2[0-4][0-9]|[0-1][0-9][0-9]|[1-9][0-9]|[0-9])){3})|localhost|([a-zA-Z0-9\-\u00C0-\u017F]+\.)+([a-zA-Z]{2,}))(:[0-9]+)?(\/(([a-zA-Z0-9$\-_.+!*'(),;:@&=]|%[0-9a-fA-F]{2})*(\/([a-zA-Z0-9$\-_.+!*'(),;:@&=]|%[0-9a-fA-F]{2})*)*)?(\?([a-zA-Z0-9$\-_.+!*'(),;:@&=\/?]|%[0-9a-fA-F]{2})*)?(\#([a-zA-Z0-9$\-_.+!*'(),;:@&=\/?]|%[0-9a-fA-F]{2})*)?)?$/;
return urlRegExp.test(url);
}
//email validation
function validateEmail(email){
var pattern = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
return pattern.test(email);
}
$('#submit').on('submit', function(e){
var name = $.trim($('.fName').val()),
password = $.trim($('.password').val()),
confirmPassword = $.trim($('.confirmPassword').val()),
email = $.trim($('.email').val()),
url = $.trim($('.url').val());
if (name === '' || password === '' || confirmPassword === '' || email === '' || url==='') {
e.preventDefault();
} else if($('.password').val() !== $('.confirmPassword').val()) {
e.preventDefault();
} else if(validateEmail($('.email').val() === false)){
var el = validateEmail($('.email').val());
console.log(el);
e.preventDefault();
} else if(validateURL($('.url').val() === false)){
e.preventDefault();
} else {
console.log('bar');
//$('.error-message').fadeIn('slow');
e.preventDefault();
}
});
JS 빈 링크 : 내 대답을 변경했습니다 http://jsbin.com/dimam/1/edit?html,css,js,console,output
당신은 어떤 오류나 기능 부족을 설명 할 수 있습니까? – sadmicrowave
나는 이메일과 URL 만 기입하면 오류가 발생하지는 않습니다. 그리고 제출하면 양식을 제출합니다. 나는 그 행동을 원하지 않는다. 각 입력 필드를 확인하고 싶습니다. –