如何最好地将
JQuery与ASP.NET客户端验证模型相结合?
我通常避免实现ASP.NET验证模型,因为它总是对我正在做的事情似乎太过分了.对于我现在正在开发的网站,我只是收集非关键的用户数据,只需要一些基本的验证.我不想要消息出现在DOM或任何类似的东西.我总是觉得很难让它看起来正确.
但是现在我需要实现一些更优雅的东西.我想在JQuery中利用的是巧妙的搜索表达式,如“告诉我,如果至少其中一个复选框被选中”.我是JQuery的新手,但我认为这是大概1行的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; });
PS.我不想使用MVC模型.我正在尝试创建一个非常“RAD”网站,没有时间深入研究这些有趣的新东西.
解决方法
ASP.NET有许多验证控件,其中之一是
您可以给它一个使用jQuery的自定义JavaScript函数,并通过参数返回true或false.您可以使用此控件自动显示错误消息,或者只是运行jQuery代码并手动处理显示.
CustomValidator
.
您可以给它一个使用jQuery的自定义JavaScript函数,并通过参数返回true或false.您可以使用此控件自动显示错误消息,或者只是运行jQuery代码并手动处理显示.
ASPX:
<asp:CustomValidator ID="CustomValidator1" runat="server" Display="None" ClientValidationFunction="checkTextareaLengths"> </asp:CustomValidator>
JavaScript的:
function checkTextareaLengths(source,args){ args.IsValid = true; $('textarea').each(function(){ if($(this).text().lenght > 400) args.IsValid = false; }); }