2012-01-27 61 views
0

我在后台创建一个带有验证和AJAX请求的Web表单,它是一个页面上的多个表单,并带有动画。我的问题是我希望提交按钮仅在所有验证都正确后执行动画。jQuery在验证后才执行动画

//jQuery ANIMATION 
$("#submit1").click(function(){ 
    $("#initial_form").animate({"left": "-=750px",opacity: 0.25,}) .fadeOut(1); 
    $("#ipad_congratulations").delay(500) .fadeIn("slow"); 
}); 

//VALIDATION 
<script type="text/javascript"> 
     /* <![CDATA[ */ 
     jQuery(function(){ 
      jQuery("#firstname").validate({ 
       expression: "if (VAL) return true; else return false;", 
       message: "<br /> First name please." 
      }); 
      jQuery("#lastname").validate({ 
       expression: "if (VAL) return true; else return false;", 
       message: "<br />Last name too." 
      }); 
      jQuery("#ValidNumber").validate({ 
       expression: "if (!isNaN(VAL) && VAL) return true; else return false;", 
       message: "Please enter a valid Zip Code" 
      }); 
      jQuery("#ValidInteger").validate({ 
       expression: "if (VAL.match(/^[0-9]*$/) && VAL) return true; else return false;", 
       message: "Please enter a valid integer" 
      }); 
      jQuery("#ValidDate").validate({ 
       expression: "if (!isValidDate(parseInt(VAL.split('-')[2]), parseInt(VAL.split('-')[0]), parseInt(VAL.split('-')[1]))) return false; else return true;", 
       message: "Please enter a valid Date" 
      }); 
      jQuery("#usremail").validate({ 
       expression: "if (VAL.match(/^[^\\W][a-zA-Z0-9\\_\\-\\.]+([a-zA-Z0-9\\_\\-\\.]+)*\\@[a-zA-Z0-9_]+(\\.[a-zA-Z0-9_]+)*\\.[a-zA-Z]{2,4}$/)) return true; else return false;", 
       message: "<br />Please enter a valid Email Addres" 
      }); 
      jQuery("#ValidPassword").validate({ 
       expression: "if (VAL.length > 5 && VAL) return true; else return false;", 
       message: "Please enter a valid Password" 
      }); 
      jQuery("#ValidConfirmPassword").validate({ 
       expression: "if ((VAL == jQuery('#ValidPassword').val()) && VAL) return true; else return false;", 
       message: "Confirm password field doesn't match the password field" 
      }); 
      jQuery("#ValidSelection").validate({ 
       expression: "if (VAL != '0') return true; else return false;", 
       message: "Please make a selection" 
      }); 
      jQuery("#ValidMultiSelection").validate({ 
       expression: "if (VAL) return true; else return false;", 
       message: "Please make a selection" 
      }); 
      jQuery("#ValidRadio").validate({ 
       expression: "if (isChecked(SelfID)) return true; else return false;", 
       message: "Please select a radio button" 
      }); 
      jQuery("#resident").validate({ 
       expression: "if (isChecked(SelfID)) return true; else return false;", 
       message: "" 
      }); 
      jQuery("#terms").validate({ 
       expression: "if (isChecked(SelfID)) return true; else return false;", 
       message: "" 
      });     
     }); 
     /* ]]> */ 
    </script> 

$(function(){ 
     $('#form').form({ 
      success:function(data){ 
       $.messager.alert('Info', data, 'info'); 
      } 
     }); 
    }); 
    </script> 
+0

验证在哪里? – 2012-01-27 03:56:46

回答

1

您的验证结构,可以使用一个小的工作。

而是验证在它自己的功能,每个字段,你可以使用验证插件来验证表单中的所有的字段如下:

$('#yourForm').validate({ 
    rules: { 
     field1: required, 
     field2: { 
      required: true, 
      email: true 
     } 
    }, 
    messages: { 
     field1: 'Field 1 error message.', 
     field2: 'Field 1 error message.' 
    } 
}); 

以上是一个最原始的例子,有一个看看documentation欲了解更多信息和示例。

你已经设置了验证规则后,您可以在随后的形式是否有效如下应用逻辑:

$('#yourForm').submit(function(){ 

    // If the form is NOT valid, stop. 
    if (!$('#yourForm').valid()) return false; 

    // The form is valid, so play the animation 
    // ... $('#foo').animate(); 
}); 

希望这有助于。

+0

谢谢它确实帮助我找到解决方案。 – Mountaininja 2012-01-30 19:04:10