2013-01-18 61 views
4

我有一个Jquery Mobile/asp.net mvc4应用程序。在第一页之后,Jquery mobile使用Ajax请求调用后续页面。现在,我使用JQuery验证器插件在我的表单上执行验证,第一次验证工作正常(即使用ajax调用加载时),但是当页面刷新/重新加载验证不起作用时。任何想法为什么发生这种情况?由于这是一个移动Web应用程序,用户可能会刷新页面。JQuery验证页面刷新后不工作(JQuery的移动)

这是我已经使用验证码:

<script type="text/javascript">  
// jquery form validation function 
$(function() { 
    $("#permissionRequestForm").validate({ 
     errorPlacement: function (error, element) { 
      if (element.attr("name") === "fromTimeHH" || element.attr("name") === "toTimeHH" || element.attr("name") === "fromTimeMM" || element.attr("name") === "toTimeMM") { 
       error.insertAfter($(element).parent()); 
      } else { 
       error.insertAfter(element); 
      } 
     }, 

     //custom validation messages 
     messages: { 
      fromDate: "Choose From Date", 
      toDate: " Choose To Date", 
      fromTimeHH: "Choose From Time", 
      fromTimeMM: "", 
      toTimeHH: "Choose To Time", 
      toTimeMM: "", 
      permissionTypeOne: "Select Permission Type", 
      permissionTypeTwo: "Select Permission Type", 
      approverList: "Select Approver", 
      reasonLeave: "Enter a Valid Reason" 
     } 
    }); 
}); 

+0

作为您的代码显示,没有它我们可以做的事情不多。但是,让我问你一个问题,你是使用文档就绪状态来初始化验证插件,还是使用页面显示事件(或任何其他页面事件)?你也使用多个HTML页面格式或1多个页面的HTML? – Gajotres

+0

嗨,会尝试添加一些代码,我没有使用任何事件,其多个HTML页面格式不是单个HTML。 –

回答

3

这是胡乱猜测,因为未提供代码示例,我想你已经使用:

$(document).ready(function() {  

}); 

到初始化一个验证器插件jQuery的常见做法是什么。不幸的是,文档准备不能用于jQuery Mobile。

也不要使用:

$(function() { 

}); 

随着jQuery Mobile的。

验证插件应该在页面显示的事件进行初始化,像这样:

$('#index').live('pageshow',function(e,data){  
    $.validator.addMethod("valueNotEquals", function(value, element, arg){ 
     return arg != value; 
    }, ""); 

    $("#form1").validate({ 
     rules: { 
      select_list : {valueNotEquals: "default"}, 
     }, 
     messages: { 
      select_list : { valueNotEquals: "You must select a value" } 
     },   
     submitHandler: function(form) { 
      alert($('#form1').valid()); 
      form.submit(); 
     } 
    }); 
}); 

而这里的工作的例子:​​。无论关闭并返回第一页多少时间,每次页面显示验证器都会初始化。

编辑:

如果使用的是把这个代码只到想要的页面,或者更好的多HTML网页格式,创建一个新的js文件,把这个代码(所有所有的自定义JS代码)在它并在所有的html页面中共享它。

+1

谢谢先生!使用现场活动后,工作得很好:) –