Tag: unobtrusive validation

如何使用ASP.NET MVC手动启用jQueryvalidation

我正在努力理解与ASP.NET MVC连接的jQueryvalidation的一些基础知识。 这个问题的简短版本是:我遗漏了哪些魔法允许@Html.EditorFor()生成的代码执行jQueryvalidation,但是不起作用我尝试使用完全相同的HTML连接我自己的jQueryvalidation? 作为一个学习练习(因为它模仿我在网站上真正想做的事情)我在Visual Studio 2012中创建了一个新的MVC 4应用程序。我添加了一个视图模型: using System.ComponentModel.DataAnnotations; namespace ValidationTest.Models { public class MyViewModel { [Required] public string MyStringValue { get; set; } } } 我修改了Views \ Home \ Index.cshtml来创建一个基于我的视图模型的表单,如下所示: @model ValidationTest.Models.MyViewModel @using (Html.BeginForm(new { id = “MyForm” })) { @Html.LabelFor(m => m.MyStringValue) @Html.EditorFor(m => m.MyStringValue) @Html.ValidationMessageFor(m => m.MyStringValue) } 最后,我修改了Home控制器,将视图模型提供给表单并处理相关的POST,如下所示: using System.Web; using […]

如果在Ajax表单中使用,jQuery不显眼validation会忽略提交按钮上的“取消”类

我正在尝试使用实现可选的客户端validation ASP.NET MVC 4, 不引人注目的jQueryvalidation, 不引人注目的ajax 这很好用 下面的图片显示了我对可选的客户端validation的意思:我的表单上唯一一个字段应该包含电子邮件,因此附加了一个电子邮件validation器。 现在我们点击保存。 由于我们的文本“name @ doamin”不是有效的电子邮件,因此会显示validation摘要。 与validation摘要一起,我们取消隐藏“无论如何”保存按钮。 第二个按钮是一个普通的提交按钮,只有class=”cancel” 。 这指示jQuery.validate.js脚本在使用此按钮提交时跳过validation。 以下是视图的代码段: @using (Html.BeginForm()) { * @Html.ValidationSummary(false, “Still errors:”) } 一切正常。 问题 如果我切换到Ajax表单,第二个提交按钮 – “仍然保存”按预期停止工作。 它的行为与正常行为相同,并且在validation成功之前阻止提交。 以下是“ajaxified”视图的代码段: @using (Ajax.BeginForm(“Edit”, new { id = “0” }, new AjaxOptions { HttpMethod = “POST”, InsertionMode = InsertionMode.Replace, UpdateTargetId = “ajaxSection”, })) { * […]

动态添加字段的客户端validation

我在ASP.NET MVC中使用jQuery的不显眼的validation插件。 正确validation在服务器上呈现的任何字段。 但是,如果我使用JavaScript在表单中动态添加字段,即使它具有相应的HTML5 data-*属性,也不会validation它。 任何人都可以指导我如何实现这一目标吗?

在文本框上手动设置不显眼的validation错误

我正在做类似于远程validation的事情,除了我已经通过jquery手动调用我的调用并设置我必须设置的内容。 现在我的问题是,如果我想告诉validation器特定文本框无效(并阻止页面提交,突出显示文本框等)。 我怎么从代码中做到这一点? @Html.LabelFor(m => Model.Slug) @Html.TextBoxFor(m => Model.Slug) if (error) { $(‘#UrlMsg’).html(‘This name is already in use.’).fadeIn(‘fast’); //what should I do here for the rest of the validation? }

将jQueryvalidation器规则添加到ASP中动态创建的元素

我在MVC3项目的页面上有一些动态插入的表单字段。 通常我们会添加jQueryvalidation服务器端,但在这种情况下我们不能(UI中的多个字段生成一个隐藏字段的值 – 这就是提交的内容。我们无法validation隐藏字段,所以我们必须为用户可以看到的字段添加仅UIvalidation) 将字段动态添加到页面后,我在容器上运行以下代码: $container.find(“.date”).rules(“add”, { required: true, messages: { required: “The date is required” } }); 但它不起作用! 奇怪的是,禁用上面的代码,创建动态元素,然后在浏览器JS控制台中运行代码,但只显示默认validation消息。 我很茫然。 有任何想法吗? 我正在使用jQuery Validation 1.9.0和不引人注目的插件

将jqueryvalidation附加到替换元素

我有一个带有下拉列表的aspnet mvc表单,我用一个jquerycombobox代替。 原始的dropdownlist有一个客户端validation设置 – 使用不显眼的lib和标准的jqueryvalidation – ,我希望这个validation附加到combobox。 作为combobox生成的一部分,名称将从滴管中移除,而是设置在隐藏字段上。 我面临的问题是,当combobox无效时(在这种情况下为空),validation消息不会显示在combobox(隐藏字段)中。 有没有办法连接隐藏字段来validation下拉列表会有什么? 我尝试了几件事: 同时将隐藏字段的名称设置为下拉列表名称 – 复制data-val和data-val-required属性,但我没有运气。 我意识到,由于隐藏字段是动态添加的,validation器不会选择它,但是当validation通过名称(afaik)选择时它可能正常工作。 我试图重新解析表单,以便它拾取隐藏的字段,但原始规则仍然存在 – 这似乎不起作用。 我也尝试过不使用隐藏字段并将validation留在原始滴管上 – 当combobox中的项目设置时,也会在滴管中设置值。 这也不起作用 – 我认为因为下拉是隐藏的,因为如果我离开它显示validation工作正常。 我正在使用bootstrap jquerycombobox ,我稍微修改了它以使用选项组 有人可以提供一些帮助吗? 谢谢

必需的字段validation不适用于JQuery Popup MVC 4

我有JQuery弹出窗口,我想在其上放置必要的字段validation,为此我已经在模型中设置了必需的属性,并且还在视图中为它们设置了validation消息,但是必需的字段validation不适用于弹出窗口。 必需的字段validation在JQuery Popups以外的表单上正常工作….请指导我应该怎么做才能解决这个问题…以下是我的代码。 模型 [Display(Name = “Material Code”)] [Required(ErrorMessage = “*”)] public string MaterialCode { get; set; } 视图 @Html.LabelFor(m => m.MaterialCode) @Html.TextBoxFor(m => m.MaterialCode) @Html.HiddenFor(m => m.MaterialCodeId) 以下是我的鳕鱼eto打开一个JQuery弹出窗口。 $(‘#btnAddCharge’).on(‘click’, function (event) { event.preventDefault(); var actionURL = ‘@Url.Action(“Edit”, “Charges”, new { Id = 0, @ticketId = @TicketId, UserId = UserId })’; $(dialogBox).dialog({ autoOpen: false, resizable: […]

自定义validation属性中的客户端validation – asp.net mvc 4

我已经在互联网上关注了一些文章和教程,以便创建一个自定义validation属性,该属性也支持asp.net mvc 4网站中的客户端validation。 这就是我现在所拥有的: RequiredIfAttribute.cs [AttributeUsage(AttributeTargets.Property, AllowMultiple = true)] //Added public class RequiredIfAttribute : ValidationAttribute, IClientValidatable { private readonly string condition; private string propertyName; //Added public RequiredIfAttribute(string condition) { this.condition = condition; this.propertyName = propertyName; //Added } protected override ValidationResult IsValid(object value, ValidationContext validationContext) { PropertyInfo propertyInfo = validationContext.ObjectType.GetProperty(this.propertyName); //Added Delegate conditionFunction = CreateExpression(validationContext.ObjectType, _condition); […]