2010-01-21 2 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: правда,» за? – Reigel

+0

ах, я никогда не реализовал «captcha_code: true» Я думал, что это сделано в jquery. Я очень новичок в jquery, поэтому я просто подумал, что это сделано. может быть, где ошибка? – NULL

+0

попробуйте принять это ... «captcha_code: true», я думаю, что это сработает отлично ... или дайте мне знать, что вы пытаетесь с этим сделать. – Reigel

0

Удаленный URL ударил переходящим в значении поля, к которому он ожидал JSON TRUE/FALSE в свою очередь, вы в этом?

+0

Да, у меня уже есть json true/false. странно моя форма пропускает остальную часть проверки. я не могу найти причину? – NULL

+0

как насчет ввода этого заголовка ('Content-type: application/json'); , тогда echo $ output; Я думаю, что json_encode возвращает массив в форме ... – Reigel

+0

в основном, если пользователь вводит значение для «email» и «captcha», он пропускает остальную часть проверки формы и форму отправляет. возможно, удаленная проверка не эффективна в jquery. здесь ошибка, я получаю: Ошибка: $ .validator.methods [метод] не определено в строке 471 jquery.validator – NULL

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"  
      } 

он прекрасно работает, ничего себе, вы, ребята, рок !!!

Смежные вопросы