나는 이것이 어리 석을 수 있다는 생각을 가지고 있지만 몇 시간 동안 붙어 있습니다.addMethod를 사용한 jquery 유효성 검사가 실패 할 때 실패합니다.
이메일 주소가 이미 데이터베이스에 있는지 확인하기 위해 ajax를 사용하여 jquery 유효성 검사를 사용하는 간단한 양식이 있습니다. 훌륭하게 작동합니다. 전자 메일 주소를 찾으면 복제본을보고하고 그렇지 않으면 조용합니다.
그러나 내가 새로운 것으로 알고있는 이메일을 입력하고 양식의 나머지 부분을 채우고 제출을 누르면 양식 제출을 방지하고 이메일 입력란에 포커스를 설정합니다. 여기
는 jQuery의 :$(document).ready(function(){
var email;
var name;
var passwd;
var passwd_repeat;
//form validation rules
$("#regForm1").validate({
rules: {
name: {
required: true,
minlength: 3,
},
passwd: {
required: true,
minlength: 8,
},
passwd_repeat: {
required: true,
equalTo: passwd,
minlength: 8
}
},
messages:
{
name: "Please enter your name.",
passwd: "Please enter a password.",
passwd_repeat: "Passwords must match."
}
});
$.validator.addMethod("validateUserEmail", function(value, element) {
var inputElem = $('#regForm1 :input[name="email"]'),
data = { "email=" : inputElem.val() },
eReport = ''; //error report*/
var dataString = 'email='+ inputElem.val();
$.ajax({
type: "POST",
url: '/checkdups.php',
data: dataString,
success: function(html) {
if (html !== 'true') {
$('#email').after('<label class="error" for="email">error - '+inputElem.val()+' already in use. Please <a href="http://tester4.com/staff/auth/login">Log in</a> with '+inputElem.val()+'.</label>');
return false;
}
else {
return true;
}
},
error: function(xhr, textStatus, errorThrown)
{
alert('ajax loading error... ... '+url + query);
return false;
}
});
},
'');
$(':input[name="email"]').rules("add", { "validateUserEmail" : true});
});
처음으로 작업 할 수 없기 때문에 .remote를 사용하는 대신 addMethod를 사용하여 규칙을 추가합니다 (페이지를 새로 고침하지 않고 일련의 중복을 거부하지 않음). 해결 방법으로 제안되었습니다. 추가 된 메소드를 주석 처리 할 때, 양식을 제출할 수는 있지만, 물론 중복을 확인하지는 않습니다.
어쨌든 통찰력은 대단히 감사하겠습니다.
요한은