2016-04-28 61 views
-2
<div class="login-form-1"> 
     <form action="" method="post" id="register-form" novalidate="novalidate" class="text-left"> 
      <div class="login-form-main-message"></div> 
      <div class="main-login-form"> 
       <div class="login-group"> 
        <div class="form-group"> 
         <label for="reg_username" class="sr-only">Username</label> 
         <input type="text" class="form-control" id="reg_username" name="reg_username" placeholder="username"> 
        </div> 
        <div class="form-group"> 
         <label for="reg_password" class="sr-only">Password</label> 
         <input type="password" class="form-control" id="reg_password" name="reg_password" placeholder="password"> 
        </div> 
        <div class="form-group"> 
         <label for="reg_password_confirm" class="sr-only">Password Confirm</label> 
         <input type="password" class="form-control" id="reg_password_confirm" name="reg_password_confirm" placeholder="confirm password"> 
        </div> 

        <div class="form-group"> 
         <label for="reg_email" class="sr-only">Email</label> 
         <input type="text" class="form-control" id="reg_email" name="reg_email" placeholder="email"> 
        </div> 


        <div class="form-group login-group-checkbox"> 
         <input type="radio" class="" name="reg_gender" value="male" > 
         <label for="male">male</label> 

         <input type="radio" class="" name="reg_gender" value="female" > 
         <label for="female">female</label> 
        </div> 


        <div class="form-group"> 
        <select class="form-control" name = "reg_security" id="select"> 
          <option class="others">What is the name of your favorite cartoon character?</option> 
          <option class="others">What was the name of your primary school?</option> 
          <option class="others">What is the name of your best friend?</option> 
          <option class="others">What was the name of your first cell phone?</option> 
        </select> 
        </div> 

        <div class="form-group"> 
        <input class="form-control" id="focusedInput" type="text" value="Your answer..."> 
        </div> 

       </div> 

       <button type="submit" class="login-button"><i class="fa fa-chevron-right"></i></button> 

/*這個被命名爲相關的js文件action.js */試圖驗證使用jQuery形式,但它不是工作

(function($) { 
    "use strict"; 

    // Options for Message 
    //---------------------------------------------- 
    var options = { 
     'btn-loading': '<i class="fa fa-spinner fa-pulse"></i>', 
     'btn-success': '<i class="fa fa-check"></i>', 
     'btn-error': '<i class="fa fa-remove"></i>', 
     'msg-success': 'All Good! Redirecting...', 
     'msg-error': 'Wrong login credentials!', 
     'useAJAX': true, 
    }; 


    // Register Form 
    //---------------------------------------------- 
    // Validation 
    $("#register-form").validate({ 
    rules: { 
     reg_username: "required", 
     reg_password: { 
      required: true, 
      minlength: 5 
     }, 
     reg_password_confirm: { 
      required: true, 
      minlength: 5, 
      equalTo: "#register-form [name=reg_password]" 
     }, 
     reg_email: { 
     required: true, 
      email: true 
     }, 
     reg_agree: "required", 
    }, 
     errorClass: "form-invalid", 
     errorPlacement: function(label, element) { 
     if(element.attr("type") === "checkbox" || element.attr("type") === "radio") { 
      element.parent().append(label); // this would append the label after all your checkboxes/labels (so the error-label will be the last element in <div class="controls">) 
     } 
      else { 
     label.insertAfter(element); // standard behaviour 
     } 
    } 
    }); 

    // Form Submission 
    $("#register-form").submit(function() { 
    remove_loading($(this)); 

     if(options['useAJAX'] == true) 
     { 
      // Dummy AJAX request (Replace this with your AJAX code) 
      // If you don't want to use AJAX, remove this 
     dummy_submit_form($(this)); 

      // Cancel the normal submission. 
      // If you don't want to use AJAX, remove this 
     return false; 
     } 
    }); 



    // Loading 
    //---------------------------------------------- 

}); 

同樣有一個CSS文件也爲造型。 問題是驗證函數不適用於窗體。 我做錯了什麼? 我曾嘗試將html &中的腳本放在單獨的文件中。 但它不起作用。

+0

檢查您是否正確導入了jquery.validate.js,它應該在jquery.js文件後 – progrAmmar

+1

控制檯中的任何錯誤?你加載jQuery嗎? – mplungjan

+0

似乎你正在執行的是IIFE,但最後的(jQuery)在哪裏? 嘗試改變'(函數($){'''(函數(){' – mplungjan

回答

0

刪除整個定製.submit()處理程序,因爲它是通過阻斷submit事件插件的正常運行的干擾......

$("#register-form").submit(function() { .... 

那麼任何ajax會去裏面只有the plugin's submitHandler function ...

$("#register-form").validate({ 
    submitHandler: function(form) { 
     // ajax here! 
     return false; 
    }, 
    rules: { 
     reg_username: "required", 
     .... 

取代默認提交。 合適的地方在經過驗證後通過Ajax提交表單。