当前位置:  开发笔记 > 编程语言 > 正文

将ASP.NET验证与JQuery相结合的优雅方法

如何解决《将ASP.NET验证与JQuery相结合的优雅方法》经验,为你挑选了3个好方法。

如何才能最好地将JQuery与ASP.NET客户端验证模型相结合?

我一般都避免使用ASP.NET验证模型,因为它对我所做的事情似乎总是有些过分.对于我现在正在处理的网站,我只是收集非关键用户数据,只需要一些基本的验证.我不希望消息出现在DOM或类似的东西中.无论如何,我总是觉得很难让它看起来正确.

但我现在需要实现一些更优雅的东西.我想在JQuery中利用的是聪明的搜索表达式,比如"告诉我是否至少选中了其中一​​个复选框".我是JQuery的新手,但我认为这是一行JQuery,在传统的ASP.NET模型中要复杂得多.

所以我想充分利用JQuery的能力,但不能完全取消ASP.NET的验证模型.

到目前为止,我最好的方法是这个(它几乎落后于ASP.NET):

$('#<%=btnJoinMailingList.ClientID %>').bind('click', function(event) {

   if (...) {
       alert("You must enter a name");
       return false;
   }     
   return true;
});

这里有什么更好的方法?是否有任何推荐的JQuery插件?

PS.我不想使用MVC模型.我正在尝试创建一个非常'RAD'的网站,没有时间去研究那些有趣的新东西.



1> Kobi..:

ASP.NET有许多验证控件,其中之一就是CustomValidator.
您可以为它提供一个使用jQuery并返回truefalse通过参数的自定义JavaScript函数.您可以使用此控件自动显示错误消息,或者只运行jQuery代码并手动处理显示.

ASPX:



JavaScript的:

function checkTextareaLengths(source, args){
  args.IsValid = true;
  $('textarea').each(function(){
    if($(this).text().lenght > 400)
      args.IsValid = false;
  });
}



2> Jon Limjap..:

ASP.NET webforms和jQuery的验证模型非常非常相似,恕我直言,因为它们都是客户端,而实现其中一个并不一定会破坏另一个.唯一真正的区别在于,在幕后,Page.Validate()如果您有一个未经验证的字段,ASP.NET验证器将导致该方法返回false.

您可以选择手动滚动自己的验证控件,然后导致相同的行为,但正如您自己所说,这可能是过度的.

jQuery也有自己的Validator插件,您可能需要查看它:http://docs.jquery.com/Plugins/Validation/Validator.



3> 小智..:

ASP.NET验证程序是具有其他属性的跨度.使用jquery,您可以访问页面上的所有验证器或按照jquery支持的任何条件对其进行过滤.通过javascript调用ValidatorValidate函数强制验证.例如:

function validate_step(step_element) {
        // find all validators on step_element and force validation
        var validators = $(step_element).find("span[controltovalidate]");
        var stepIsValid = true;
        validators.each( function() {
           ValidatorValidate(this); stepIsValid &= this.isvalid;
        });
        return stepIsValid;
    }

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有