2012-06-19 2 views
2

사용자 정의 WordPress 테마의 일부로 프론트 엔드 사용자 등록 양식을 작성하는 중에 문제가 발생하며 전자 메일이 있는지 확인해야합니다. 사용자가 등록하도록 허용하기 전에 Ajax 요청.jQuery 유효성 검사 플러그인을 사용하여 WordPress 양식 사용

다음은 JS입니다. jQuery Validate 플러그인을 사용하고 있으며 addMethod를 사용하여 .validate 호출에 삽입하고 있습니다. 여기에 코드입니다 :

function chk_email(value){ 
    var response; 
    $.ajax({ 
    async: false, 
    url: ajaxurl, 
    type: 'POST', 
    data: {action: 'chk_email', email: value}, 
    dataType: "text", 
    success: function(msg) { 
     if (msg>0) { 
     response = true; 
     } else{ 
     response = false; 
     } 
    } 
    }) 
    console.log(response); 
    return response; 
} 


$.validator.addMethod('chk_email', chk_email, "This email address has already been registered"); 

$("#adduser").validate({ 
    // debug: true, 
    rules: { 
    user_login: { 
     required: true, 
     minlength: 3, 
     nowhitespace: true, 
     alphanumeric: true 
    }, 
    first_name: { 
     required: true, 
    }, 
    last_name: { 
     required: true, 
    }, 
    user_email: { 
     required: true, 
     email: true, 
     nowhitespace: true, 
     // remote: { url: ajaxurl, type: 'post' } 
     chk_email: true 
    }, 
    tel: { 
     required: true, 
     phoneUS: true 
    }, 
    street_address: { 
     required: true 
    }, 
    locality: { 
     required: true 
    }, 
    region: { 
     required: true 
    }, 
    postal_code: { 
     required: true 
    }, 
    }, 
    messages: { 
    user_login: { 
     required: "Required", 
     user_login: "A username needs to be atleast 3 charachters long." 
    }, 
    user_email: { 
     required: "We need your email address to contact you", 
     user_email: "Your email address must be in the format of [email protected]", 
     nowhitespace: "yeah" 
    }, 
    }, 
    errorElement: 'span', 
    errorClass: 'help-inline', 
    errorPlacement: function(error, element) { 
    error.insertAfter(element); 
    }, 
    highlight: function(element) { 
    var parent = $(element).parents('.control-group'); 
    $(element).addClass('error'); 
    $(parent).addClass('error'); 
    }, 
    unhighlight: function(element) { 
    var parent = $(element).parents('.control-group'); 
    $(element).removeClass('error'); 
    $(parent).removeClass('error'); 
    } 
    // debug: true 
}); 

그리고 여기가 functions.php 파일 내에서 사용하고있는 PHP이다

add_action('wp_ajax_nopriv_chk_email', 'chk_email'); 

function chk_email(){ 
    if (email_exists($_POST['email'])){ 
    // return TRUE; 
    echo 'true'; 
    } else { 
    // return FALSE; 
    echo 'false'; 
    } 
} 

나는 확실히 내가 잘못 여기서 확인을 수행하고 있지 않다 무엇을. 나는 어떤 생각에 감사 할 것입니다.

답변

관련 문제