使用MVC3,您可以使用两种新的机制来添加自定义验证.这些是(1)子类ValidationAttribute或(2)实现IValidatableObject.
ValidationAttribute允许您通过实现IClientValidatable(并通过jQuery注册新的适配器和方法)相对简单地添加客户端验证.
IValidatableObject更适合于一次性验证要求,其中重用不是一种选择.它还导致更简单的代码.因此,它是我选择的一些场景.不幸的是,我没有看到使用此方法实现客户端验证的简单方法.
所以问题是我缺少什么以及在使用IValidatableObject时如何获得JS验证?
我想要什么
我希望在我的View中使用我选择的事件触发客户端验证.它可能是'onblur'可能是另一个按钮,但不是提交按钮.
相关链接
将不显眼的jquery验证应用于ASP.Net MVC中的动态内容
我试过的
鉴于各种事件监听器,我已经解雇了以下方法而没有运气:
$(selector).validate();
$(selector).valid();
$.validator.unobtrusive.parseDynamicContent(selector);
$.validator.unobtrusive.parse($(selector));
摘要
所以我需要客户端验证来触发给定事件(除了提交)并显示相应的验证消息.我不觉得任何Markup/Razor语法是必要的,因为客户端验证会在提交时触发,并且所有相应的验证消息都会按预期显示.
有人Scala-JS在真正的网络项目中使用过,但不仅仅是JavaScript在隔离环境中进行简单替换吗?
我想尽可能多地使用Scala(我希望我能).并且似乎Scala-JS声称是我可以使用(现在)或将来使用的库.
这就是为什么我对小工作解决方案感兴趣,以及引导程序(如PlayFrameworkapp在哪里Scala-JS).
可以证明Scala-JS可用于实际Web开发工作的解决方案/示例.
我这么问是因为我发现约Scala-JS到目前为止是它几乎实际使用.
问:一些例子/证明它已准备好在真实项目中使用?
更新(1年后):
例如,有很多TypeScript例子.当我说"例子"和"真正的网络项目"时,我的意思.还有许多在线培训.如果我在Google中查询:"typescript github angular",它将返回172 000页.ScalaJS绝对不幸的是,它缺乏一切.
但它有一些:'"scala-js"github angular' - 4 980场比赛.但到目前为止,大部分都是"发展的早期阶段","没有商业支持"
我[Required]在ASP.NET MVC 3中使用该属性进行客户端验证.
该课程看起来像:
public class User
{
[Required(ErrorMessage = "First Name is required")]
public string FirstName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我希望FirstName只有在可见的情况下才能验证该字段,该字段仅在某些条件下显示.我怎样才能做到这一点?
我使用了以下内容,但它仍然希望验证该隐藏字段的必填字段.
$('#registerForm').validate({ ignore: ":not(:visible)" });
Run Code Online (Sandbox Code Playgroud) jquery requiredfieldvalidator jquery-validate client-side-validation asp.net-mvc-3
我有一个用于客户端验证的字符串:
private const String regex = @"^(?:\b(?:\d{5}(?:\s*-\s*\d{5})?|([A-Z]{2})\d{3}(?:\s*-\s*\1\d{3})?)(?:,\s*)?)+$";
Run Code Online (Sandbox Code Playgroud)
我在我的[RegularExpression(regex, ErrorMessage = "invalid")]属性中使用此字符串.
我知道/iJavascript正则表达式的标志用于使其不区分大小写,但只是将其添加到我的正则表达式的末尾(即@"^....$/i"不工作 - 正则表达式验证完全失败,无论输入什么(有效或无效) ).
我错过了什么?
为了保持我的模型验证干净,我想实现我自己的验证属性,比如PhoneNumberAttribute和EmailAttribute.其中一些可以有利地实现为继承的简单类RegularExpressionAttribute.
但是,我注意到这样做会破坏这些属性的客户端验证.我假设有某种类型的绑定在某处失败.
我能做些什么来让客户端验证工作?
代码示例:
public sealed class MailAddressAttribute : RegularExpressionAttribute
{
public MailAddressAttribute()
: base(@"^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$")
{
}
}
Run Code Online (Sandbox Code Playgroud) regex asp.net asp.net-mvc client-side-validation data-annotations
我希望客户端验证与服务器端验证一样好.我意识到这一点如下:
型号:(该模型有一个包含Test类的DataModel(dbml))
namespace MyProject.TestProject
{
[MetadataType(typeof(TestMetaData))]
public partial class Test
{
}
public class TestMetaData
{
[Required(ErrorMessage="Please enter a name.")]
[StringLength(50)]
public string Name { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
控制器没什么特别的.
风景:
<% Html.EnableClientValidation(); %>
<% using (Ajax.BeginForm("Index", "Test", FormMethod.Post,
new AjaxOptions {}, new { enctype = "multipart/form-data" }))
{%>
<%= Html.AntiForgeryToken()%>
<fieldset>
<legend>Widget Omschrijving</legend>
<div>
<%= Html.LabelFor(Model => Model.Name) %>
<%= Html.TextBoxFor(Model => Model.Name) %>
<%= Html.ValidationMessageFor(Model => Model.Name) %>
</div>
</fieldset>
<div>
<input type="submit" value="Save" />
</div>
<% …Run Code Online (Sandbox Code Playgroud) validation client-side-validation data-annotations asp.net-mvc-2
我不确定我是否可以提出这样的问题,但在Meta Stackoverflow上看到这个后,看起来这种问题还可以.那么,关于我的问题:
几个月前,我在Javascript中编写了一个验证框架.我知道已存在jQuery Validation之类的验证框架,但我想采用不同的验证方法.当前的方法涉及编写Javascript代码以对表单元素执行验证.通过查看表单源代码,不会立即明确在每个元素上进行验证.在某种程度上,这可以通过使用指定不同类型的验证的CSS类来解决.但我觉得即使这样也是有限的,因为你无法轻松定制验证的行为(错误消息等).我想使用JSR-303 Bean Validation或Hibernate Validator在Java中执行基于注释的验证.
由于HTML5允许您向元素添加自定义属性,我认为我可以利用它来"注释"表单元素以进行验证.所以,基本上,我想出了这个:
<input id = "myInput"
name = "myInput"
type = "text"
class = "regula-validation"
data-constraints = '@NotEmpty @IsNumeric @Between(min=1, max=5)' />
Run Code Online (Sandbox Code Playgroud)
考虑到这个基本思想,我创建了一个Javascript框架:
此外,该框架还具有以下功能:
一旦我创建了我的框架,我就试图获得反馈并对其进行审核,但我不知道该去哪里获得反馈和评论.我写了一些关于它的博客文章并将其发布到Digg和Reddit(编程部分),但没有太多运气.一些人似乎很感兴趣,但我没有得到更多.
Recently, at my workplace we've been modernizing a legacy codebase (JSP and servlets) and moving it into Spring MVC. When the conversation of validation came up, I pitched my framework to my senior …
自从我的网站升级到Rails 4后,客户端验证gem已停止为我工作.我已经看过各种替代方案,例如jquery-validation-rails和judge,它们涉及编写相当多的javascript,特别是对于一个如此大的网站.在jquery-validation-rails的情况下,重新执行客户端的所有验证规则.考虑到Rails是一个如此流行的框架,令我惊讶的是没有"简单"的选择.有没有其他人知道的宝石,它做验证以及客户端验证宝石?
或者是使用与某些ajax混合的ModelName.validators方法的最佳替代方法,并通过jquery-validation-rails gem进行验证?
javascript ruby ruby-on-rails client-side-validation ruby-on-rails-4
validation ×4
javascript ×2
regex ×2
asp.net ×1
asp.net-mvc ×1
jquery ×1
ruby ×1
scala ×1
scala.js ×1
server-side ×1