2013-01-08 26 views
0

修訂 我使用jQuery驗證插件和遠程方法來檢查電子郵件availiability使用Ajax,但我不明白爲什麼AJAX調用一次。當輸入電子郵件時,ajax打電話並在控制檯打印輸入的電子郵件,但是如果我刪除它並在另一封電子郵件中寫入,則不會發生任何事情。jQuery驗證+ AJAX電子郵件availiability檢查

HTML

<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email"> 

jQuery的

jQuery.validator.addMethod('defaultInvalid', function(value, element) { 
    return !(element.value == element.defaultValue); 
}, 'Custom Error Message for this field'); 

$('.checkout-form').validate({ 
    rules: { 
     on0 : 'required defaultInvalid email' 
    } 
}); 

$('.check-email').rules("add", { 
    "remote" : { 
     url: 'c/', 
     type: "post", 
     dataType: 'html', 
     data: { 
      check: function() { 
       return $('.check-email').val(); 
      } 
     }, 
     success: function(data){ 
      console.log(data); 
     }, 
     error: function(data){ 
      console.log(data); 
     } 
    } 
}); 

PHP哪裏AJAX使得後

<?php 

echo $_POST['check']; 

?> 
+0

究竟什麼是你的理由中分別添加了'remote'規則,當你可以用'validate()'裏的所有其他規則聲明它? – Sparky

回答

2

之所以只有阿賈克斯閃光一次,是已覆蓋jQuery驗證的遠程方法的成功回調。保持簡單和嘗試是這樣的:

<input name="email_address"/> 

與腳本

<script> 
$(function() { 
    $('form').validate({ 
     rules: { 
      email_address: { 
       required:true, 
       remote: { 
        url: "your_script.php" 
       } 
      } 
     }, 
     debug: true, 
     submitHandler: function() { alert('ok'); } 
    }); 


}); 
</script> 

和PHP像

<?php 

echo $_GET['email_address'] == "bob"; 

?> 
-1
<script type="text/javascript" src="js/jquery.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function(){ 

     $('.checkout-form').validate({ 
      rules: { 
       on0 : { 
        required : true, 
        remote : { 
         url: YOUR_HOST, 
         type: "post", 
         data: { 
          email_address: function() 
          { 
           return $("#email_address").val(); 
          } 
         } 
        } 
       }, 
      }, 
      messages : { 
       required:"message", 
       remote: "message" 
      } 
     }); 
    }); 
</script>

在HTML

<input type="text" name="on0" value="Your e-mail" class="form-field no-mr check-email" id="email_address"/>

而在PHP代碼

<?php 

echo $_POST['email_address']; 

?>
+0

除非''required''和''remote''是'input'元素的'name',否則'rules:'和'messages:'的聲明都會混淆。 – Sparky

+0

@sparky ohhh是的,我忘記了....看到我更新的答案。 –