2012-01-27 65 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