2014-01-11 1 views
0

jquery에 양식을 검증 할 때 양식을 제출할 때 오류가 있어도 원격을 제거하면 올바르게 작동하고 양식을 제출할 수 없습니다. 모든 분야에서 채워 졌습니까? 어떤 아이디어?Jquery 유효성 검사 양식에 원격을 추가 할 때 유효하지 않음

<?php 
session_start(); 
if(strtolower($_REQUEST['answer']) == $_SESSION['captcha']){  
echo 'true';die; 
}else{ 
echo 'false';die; 

} 
?> 

검증은 여전히 ​​함께 원격없이 onKeyUp에 등 작동하지만 단지에 제출하지 : 코드는 다음과 같습니다

<script> 
$(document).ready(function() { 

    $("#SignUp").validate({ 
     onsubmit: true, 
     onkeyup: function(element) { $(element).valid(); }, 
     rules: { 
      email: { 
       required: true, 
       email: true 
      }, 
      password: { 
       required: true, 
       password: true 
      }, 
      confirm_password: { 
       equalTo: "#password", 
       required: true 
      }, 
      company: { 
       nls:true, 
       required: true 
      }, 
      telephone: { 
       required: true, 
       phoneUK: true 
      }, 
      email2: { 
       email: true 
      }, 
      website: { 
       url: true 
      }, 
      address1: { 
       nls:true 
      }, 
       address2: { 
       nls:true 
      }, 
      town: { 
       nls:true  
      }, 
      postcode: { 
       postcodeUK:true 
      }, 
      country: { 
       selectcountry:true 
      }, 
      terms:{ 
       required:true    
      }, 
      answer:{ 
       remote: "Captcha/check-captcha.php", 
       type: "POST", 
       data: { 
         captcha: function() { 
         return $("#answer").val(); 
           } 
         } 

      } 
     }, 
     messages:{ 
      email: 
        { 
         required: "Please Enter an Email Address" 
        }, 
      password: 
        { 
         required: "Please Enter a Password" 
        }, 
      confirm_password: 
        { 
         required: "Please Confirm Your Password" 
        }, 
      company: 
        { 
         required: "Please Enter Your Company/Climbing Gym Name" 
        }, 
      telephone: 
        { 
         required: "Please Enter a Telephone Number" 
        }, 
      terms: 
        { 
         required: "Please Agree Our Terms and Conditions" 
        }, 
      answer:{ 
         remote: "You Have Entered The Captcha Correctly When This Message Disappears" 
        } 

     } 
    }); 

    $.validator.addMethod("password", function (value, element) { 
     return this.optional(element) || /^[[email protected]#$%^&*()_]{6,16}$/i.test(value); 
    }, "Passwords are 6-16 characters"); 

    $.validator.addMethod("nls", function(value, element) 
    { 
    return this.optional(element) || /^[a-zA-Z0-9\s.\-_']+$/i.test(value); 
    }, "Please Only Enter Alpha Numeric Characters and Spaces"); 


    jQuery.validator.addMethod('selectcountry', function (value) { 
     return (value != 'Nothing'); 
    }, "Please Select a Country"); 

    $.validator.addMethod("url", function(value, element) 
    { 
    return this.optional(element) || /^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/i.test(value); 
    }, "Please Enter A Valid Website URL"); 





}); 
</script> 

PHP 이하?

+0

원격 규칙이 답'해야입니다 : { 원격 : { URL : "보안 문자/- captcha.php 확인", 유형을 " POST ", 데이터 : { captcha : function() { return $ ("# answer "). val(); } } } } ' –

+0

한 가지 유념해야 할 점은 Ajax를 사용하여 클라이언트 측에서 원격 검증은 보안 문자는 대답에 자리를 –

+0

건배 아룬 제출 양식의 제출 핸들러에서 검증 될 필요가 충분하지입니다 , 어리석은 실수, 많은 감사합니다 – user3166610

답변

0

원격 규칙 구문은 귀하의 경우 약간 떨어져

answer: { 
    required: true, 
    remote: { 
     url: "Captcha/check-captcha.php", 
     type: "POST", 
     data: { 
      captcha: function() { 
       return $("#answer").val(); 
      } 
     } 
    } 
} 
관련 문제