2013-10-31 33 views
0

我通過jQuery加載函數加載頁面。
我的問題是jQuery驗證對第一頁工作正常,但其他頁面通過ajax加載它不起作用。請在下面找到jsp & js文件。
是否因爲頁面源代碼在使用ajax頁面加載時沒有改變。 我應該使用顯示/隱藏功能嗎?
//Main.jsp頁面通過Ajax加載時的jQuery驗證?

   <script 
       src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" 
       type="text/javascript"></script> 

      <script 
       src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js" 
       type="text/javascript"></script> 
      <script 
       src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" 
       type="text/javascript"></script> 
      <link rel="stylesheet" 
       href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" /> 

      <link rel='stylesheet' type='text/css' href='css/styles.css' /> 
      <script type="text/javascript" src="js/main.js"></script> 
      <script src="Jquery/myscript.js"></script> 


      </head> 
      <body> 
       <div id="top"> 
        <div id='mainMenu'> 
         <ul> 
          <li><a id="home"><span>Home</span></a></li> 
          <li><a href='#'><span>Hot Deals</span></a></li> 
          <li><a><span id="logPage">Login</span></a></li> 
          <li><a id="regPage"><span>Register</span></a></li> 
          <li><a id="usPage"><span>About</span></a></li> 
          <li class="last"><a id="adminPage"><span>Adminstration</span></a> 
         </ul> 
        </div> 
        <div id="mainPages"> 
         <jsp:include page="Search.jsp"></jsp:include> 
        </div> 
        <div id="errors"> 
         <s:actionerror /> 
         <s:actionmessage /> 
        </div> 
       </div> 

      </body> 
      </html> 
     //main.js 

     $(document).ready(function() { 

      $("#logPage").click(function() { 

       $('#mainPages').empty(); 
       $('#mainPages').load('Index.jsp'); 
      }); 
      $("#regPage").click(function() { 

       $('#mainPages').empty(); 
       $('#mainPages').load("Register.jsp"); 
      }); 
      $("#usPage").click(function() { 

       $('#mainPages').empty(); 
       $('#mainPages').load("About.html"); 
      }); 
      $("#home").click(function() { 

       $('#mainPages').empty(); 
       $('#mainPages').load("Search.jsp"); 
      }); 
      $("#adminPage").click(function() { 

       $('#mainPages').empty(); 
       $('#mainPages').load("../AdminLogin.jsp"); 
      }); 

     }); 
    //myscript.js 
    $(document).ready(function() { 

     $("#myform").validate({ 
      rules : { 
       email : { 
        required : true, 
        email : true 
       }, 
       password : { 
        required : true, 
        minlength : 8 
       }, 

      }, 
      messages : { 
       email : { 
        required : "Please Enter email", 
        email : "Valid Email Please" 
       } 
      } 
     }); 

     $("#regform").validate({ 

      rules : { 
       email : { 
        required : true, 
        email : true 
       }, 
       password : { 
        required : true, 
        minlength : 8 
       }, 
       fname : { 
        required : true, 
        lettersonly : true 
       }, 
       lname : { 
        lettersonly : true 
       }, 
       mname : { 
        lettersonly : true 
       }, 
       geneder : { 
        required : true 
       }, 
       city : { 
        required : true 
       }, 
       zip : { 
        required : true, 
        digits : true, 
        minlength : 6, 
        maxlength : 6 
       }, 
       mobno : { 
        required : true, 
        digits : true, 
        minlength : 10, 
        maxlength : 10 
       }, 
       dob : { 
        required : true 
       } 
      }, 
      messages : { 
       email : { 
        required : "Please Enter email", 
        email : "Valid Email Please" 
       } 
      } 

     }); 
     $("#travelDate").datepicker({ 
      defaultDate : '0', 
      numberOfMonths : 1, 
      minDate : '0', 
      maxDate : '1M' 
     }); 
     $("#searchForm").validate({ 

      rules : { 
       fromCity : { 
        required : true, 
        lettersonly : true, 

       }, 
       toCity : { 
        required : true, 
        lettersonly : true 
       }, 
       seats : { 
        required : true, 
        digits : true, 
        min : 1, 
        max : 9, 
       }, 
       travelDate : { 
        required : true, 
       } 
      }, 
      messages : { 

      } 
     }); 
    }); 
    )}; 
+0

每一個Ajax請求 – Ahmad

+0

後附加驗證所有頁面都包含myscript.js? –

+0

@Sridhar R是所有頁面都包含myscript.js – satishkhowal

回答

0

main.js是好的...

請嘗試以下步驟

$(document.body).on('click', 'input[type="submit"]', function(){ 
    var $form = $(this).closest('form'); 
     $form.validate({ 

重複:

1)更改該方法的可撥打myscript.js 撥打function validator()

2)在您通過ajax調用加載的所有頁面中使用onload=validator()。需要通過$("#someDynamicElement").live()而不是$(document).ready()確定..嘗試,如果這有助於你這是動態加載的元素

+0

感謝您的輸入 我不想在加載時驗證,而是在表單的submit/onclick上進行驗證。 – satishkhowal

+0

歡迎您! – GGG

0

嘗試以上所有form

+0

謝謝 在同一頁上有很多形式,我將如何區分他/她們。 – satishkhowal

0

存在,我也有類似的問題,當我產生的形式..

相關問題