2010-01-21 148 views
2

下面是我的代碼驗證只有在沒有遠程驗證的情況下才有效。一旦我包含遠程驗證,它會提交表單而不完成所有其他表單驗證?遠程驗證

$(document).ready(function() { 


     $("#form1").validate({ 
      rules: { 
       firstName: "required",// simple rule, converted to {required:true} 
       lastName: "required", 
       email: {// compound rule 
         required: true, 
         email: true, 
         success: "valid", 
         remote: "checkAddress.php" 
       },  
       password: { 
        required: true, 
        success: "valid", 
        minlength: 5 
       }, 

       verify: { 
        required: true, 
        success: "valid", 
        minlength: 5, 
        equalTo: "#password" 
       }, 
       address1: "required", 
       city: "required", 
       province: "required", 

       dob: { 
        required: true, 
        date: true, 
        success: "valid" 
       }, 


       captcha_code: { 
        required: true, 
        captcha_code: true, 
        remote: "checkCaptcha.php"  
       } 

      }, 
      messages: { 
       email:{ 
        remote: "This email is already registered! One registration per email address." 
       }, 
       captcha_code:{ 
        remote: "Enter the right captcha value!." 
       } 
      }, 
      onsubmit: true 
     }); 
    }); 

回答

1

我在問的是,如果你已經實現了captcha_code作爲一種方法?在captcha_code: true,

captcha_code: { 
     required: true, 
     captcha_code: true, 
     remote: "checkCaptcha.php"  
} 

像這樣

jQuery.validator.addMethod("captcha_code", function(value, element) { 
    return (this.optional(element) || /* do something */); 
}, ""); 

我發現這個驗證碼演示,它沒有captcha_code的方法,只需要和遙控器。所以我在想如果你已經實現了它。

這裏是演示的腳本。 http://jquery.bassistance.de/validate/demo/captcha/

$(function(){ 
$("#refreshimg").click(function(){ 
    $.post('newsession.php'); 
    $("#captchaimage").load('image_req.php'); 
    return false; 
}); 

$("#captchaform").validate({ 
    rules: { 
     captcha: { 
      required: true, 
      remote: "process.php" 
     } 
    }, 
    messages: { 
     captcha: "Correct captcha is required. Click the captcha to generate a new one" 
    }, 
    submitHandler: function() { 
     alert("Correct captcha!"); 
    }, 
    success: function(label) { 
     label.addClass("valid").text("Valid captcha!") 
    }, 
    onkeyup: false 
}); 

});

+0

什麼是「captcha_code:true」? – Reigel 2010-01-21 04:33:03

+0

啊,我從來沒有實現「captcha_code:true」我認爲這是如何在jQuery中完成的。我對jquery很新,所以我只是認爲它是如何完成的。也許那是錯誤的地方? – NULL 2010-01-21 13:19:50

+0

嘗試取出...「captcha_code:true,」,我認爲它會完美地工作......或讓我知道你想用這個做什麼。 – Reigel 2010-01-21 14:10:35

0

遠程URL被擊中路過的字段的值,該公司預計,一個JSON TRUE/FALSE作爲回報,你在這一個?

+0

是的,我已經有一個JSON真/假。奇怪的是我的表格忽略了其餘的驗證。我似乎無法找到原因? – NULL 2010-01-21 02:04:50

+0

如何把這個 標題('Content-type:application/json'); 然後echo $ output;我認爲json_encode返回一個數組形式... – Reigel 2010-01-21 02:19:29

+0

基本上,如果用戶輸入的值爲「電子郵件」和驗證碼,它會省略表單驗證的其餘部分,然後表單提交。也許遠程驗證在jQuery中效率不高。這裏是我得到的錯誤:錯誤:$ .validator.methods [方法]是不明確的jquery.validator – NULL 2010-01-21 02:34:07

0

,所以我改變:

email: {// compound rule 
        required: true, 
        email: true, 
        success: "valid", 
        remote: "checkAddress.php" 
      }, 
captcha_code: { 
       required: true, 
       captcha_code: true, 
       remote: "checkCaptcha.php"  
      } 

email: {// compound rule 
        required: true,     
        remote: "checkAddress.php" 
      }, 
captcha_code: { 
       required: true, 
       remote: "checkCaptcha.php"  
      } 

它的偉大工程,哇,你們搖滾!