DNN中使用jQuery Validation时常见问题及解决方法(jQuery Validation with DNN Tips)

来源:互联网 发布:阿里云oss客户端 编辑:程序博客网 时间:2024/05/16 16:14

本文将浅谈一下在开发DNN模块结合jQuery Validation开发前端验证代码时遇到的常见问题以及我的处理方法,希望对DNN有兴趣的童鞋有些许的帮助。

1、由于开发DNN模块是用的还是ASP.NET WebForm 的开发方式但是jQuery官网以及最近的相关博客中提到的都是与ASP.NET MVC结合使用的例子。jQuery Validation与ASP.NET WebForm混用最大的困难在于jQuery Validation是依赖于DOM Element的name属性的,但是对于ASP.NET Web Form来说被页面渲染后的服务器端空间的id,name都是动态的。即使到了ASP.NET给服务端控件指定为Static模式,最终控件的ID和设计时一样的,但是name还是跟原来一样是一串以$分割的长标识。因此ASP.NET WebForm中不能以官方的如下这种方式使用,

$(".selector").validate({    rules: {        name: "required",        email: {            required: true,            email: true        }    },    messages: {        name: "Please specify your name",        email: {            required: "We need your email address to contact you",            email: "Your email address must be in the format of name@domain.com"        }    }});


那我们该如何解决这个问题呢,细读jQuery Validation的源代码后发现:其实我们完全可以怎对每一个元素逐一的进行处理。具体操作请参见如下示例代码,

            $("#"+"<%= txtWidth.ClientID %>").rules("add",{                required:true,                digits:true,                messages:{                    required:'高度必填',                    digits:'invalid input'                }            });


 

 

2、本地化默认错误信息动态加载的方法

<script type="text/javascript" src ="http://jzaefferer.github.io/jquery-validation/localization/messages_<%= Local.getDefault().getLanguage() %>.js"/>


 

3、点击Form中的LinkButton不触发验证的问题

$("#yourlinkid").click(function(){     return $('form').valid();}


 

4、DNN中如果在ascx或者aspx页面中定制化包含中文的错误信息时界面出现乱码的问题
打开web.config文件找到类似如下内容

<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="UTF-8" />



将fileEncoding="UTF-8"替换成GB2312即能解决问题

<globalization culture="en-US" uiCulture="en" requestEncoding="UTF-8" responseEncoding="UTF-8" fileEncoding="GB2312" />


 

参考:

http://jqueryvalidation.org/

 

 

原创粉丝点击