2013-10-31 35 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

存在,我也有类似的问题,当我产生的形式..

相关问题