Tag: unobtrusive validation

ASP.NET MVC 3不引人注意的validation,提交和TinyMCE

我们为TinyMCE提供了一个内部开发的文件/图像/文档管理器插件,该插件仍然被移植到jQuery。 与此同时,我们的一些依赖于这些function的项目需要使用基于Prototype的TinyMCE和jQuery.noConflict()版本。 这很好,但是在ASP.NET MVC 3中进行不显眼的validation时,提交的validation发生在TinyMCE回调之前,将TinyMCE的内容复制到表单字段被触发。 是否有可能在不显眼的validation中挂钩进入预validation事件?

史蒂夫桑德森的BeginCollectionItem在所有情况下都不起作用……潜在的解决方案?

我正在使用Steve Sanderson的BeginCollectionItem实用程序来渲染要在MVC3中编辑的对象列表,当您从迭代器渲染整个集合时,它非常有用。 当我尝试将一个新项添加到集合中时,我的问题就出现了,并返回表示该对象的html。 出于某种原因,我的数据注释没有在代码中的html中呈现。 有没有可用的修复程序,或者是否有任何不同的东西,sans不得不亲自编写validation,我可以做什么来解决这个问题? 谢谢。

MVC 4客户端validation不适用于使用Ajax加载的表单

我有一个管理页面,用户点击链接,然后使用Ajax将包含Web表单的相应PartialView加载到Admin页面上的特定div中 。 全部 “~/Scripts/jquery-2.0.3.js”, “~/Scripts/jquery.unobtrusive-ajax.js”, “~/Scripts/jquery.validate.js”, “~/Scripts/jquery.validate.unobtrusive.js” 在Admin页面中引用,并且在加载PartialView时, jQuery客户端validation将不起作用。 但是当我在PartialView引用这些脚本时,一切都运行正常,但我不打算为每个PartialView执行此操作,因为它们很多,每次加载时,必须从中请求至少两个.js文件服务器了 。 有没有办法在没有这个问题的情况下将这些脚本放在我的父( Admin )页面中?

我试图用jqueryvalidation突出我的输入

我在mvc工作。 这是我的看法: @using (Html.BeginForm(“CreatePost”, “Posts”, FormMethod.Post, new { @enctype = “multipart/form-data”, @id = “save-post-form” })) { Post Title @Html.TextBoxFor(m => m.Title, new { @class = “form-control”, @autocomplete = “off” }) @Html.ValidationMessageFor(m => m.Title, null, new { @class = “text-danger” }) Post Description @Html.TextAreaFor(m => m.Description, new { @class = “form-control”, @autocomplete = “off” }) @Html.ValidationMessageFor(m […]

客户端validation无效

我实现了客户端validation,即Model和HTML指定的Required attributes 。 ValidationMesssage用于.cshtml并引用了JQueryvalidation器,当我点击“ save button时工作正常。 但是当我实现按钮的onClick event和ajax调用时,validation似乎无法正常工作。 我尝试使用IsValid但没有运气。 请找到以下代码。 调节器 [HttpPost] public ActionResult AddClient(ClientModel clientData) { var clientObj = new Metadata.Client.Service.Client(); string successMessage = string.Empty; clientObj.ClientType = new Metadata.Client.Service.ClientType(); clientObj.ClientName = clientData.Client.ClientName; clientObj.ClientCode = clientData.Client.ClientCode; clientObj.ClientType.ClientTypeId = clientData.ClientTypeSelectId; try { clientObj = clientData.AddNewClient(clientObj); } catch (Exception ex) { return new ContentResult { Content = […]

在具有相同ID的下拉字段列表中,validation下拉项不会出现多次

我有一个表单,用户可以根据需要添加任意数量的行。 每次他们期望从提供的下拉列表中选择不同的选项。 目前没有validation可以阻止他们多次选择相同的值。 每行都是“ResourceCount”。 ViewModel具有IList的ResourceCountViewModel,因此每行都作为项添加到列表中。 ResourceCount视图模型包含用于存储所选下拉值的“id”和用于数字字段的“数量”。 我想不出在这种情况下使用比较注释的方法。 如何为此实施适当的validation? 编辑:在接受的答案中有很多好的建议。 我在控制器后期操作中进行了简单的检查: if (resourceCounts.Count != resourceCounts.Where(d => d.Id!= 0) .Select(x => x.Id) .Distinct() .Count()) { ModelState.AddModelError(string.Empty, “You can’t select the same option more than once”); //etc. }

如何在ASP NET MVC中自定义不显眼的validationJQuery消息?

我有一个表单,当它做了不引人注意的validation时,我希望它显示: 此消息: “请输入值。 ” 而不是这条消息: “此字段是必需的。” 我尝试在我的jquery.validate.unobtrusive.js文件的末尾添加它 (function ($) { $.extend($.validator.messages, { required: “Please enter a value.” }); }(jQuery)); 但它只是不起作用。 我也尝试直接修改jquery.validate.js文件中的“messages”变量,但它也没有工作。 你能告诉我怎样才能完成这件事?

如何在从AJAX调用中附加表单时正确设置MVC 5不显眼的validation?

我有关于这个问题的googeld,我检查了我的web.config,bundleconfig和我的布局,如下所示:web.config: 在“BundleConfig.cs”下的App_Start文件夹中: var jqueryBundle = new ScriptBundle(“~/bundles/jquery”); jqueryBundle.Include(“~/Scripts/jquery-{version}.js”); jqueryBundle.Include(“~/Scripts/moment.min.js”); jqueryBundle.Include(“~/Scripts/loadingoverlay.js”); jqueryBundle.Include(“~/Scripts/fullcalendar.js”); jqueryBundle.Include(“~/Scripts/lang-all.js”); jqueryBundle.Transforms.Add(jsTransformer); jqueryBundle.Orderer = nullOrderer; bundles.Add(jqueryBundle); var jqueryvalBundle = new ScriptBundle(“〜/ bundles / jqueryval”); jqueryvalBundle.Include( “〜/脚本/ jquery.validate *”); jqueryvalBundle.Include( “〜/脚本/ jquery.validate.js”); jqueryvalBundle.Include( “〜/脚本/ jquery.validate.unobtrusive.js”); jqueryvalBundle.Transforms.Add(jsTransformer); jqueryvalBundle.Orderer = nullOrderer; bundles.Add(jqueryvalBundle); 在我的布局页面中: @Scripts.Render(“~/bundles/jquery”) @Scripts.Render(“~/bundles/jqueryval”) @Scripts.Render(“~/bundles/bootstrap”) 萤火虫表明: 到目前为止,一切都包括在内,并且应该顺利运行。 我的模特: [DisplayName(“Förnamn”)] [Required(ErrorMessage = “Vänligen ange ett förnamn”)] [StringLength(100)] […]

如何使用不引人注目的jQueryvalidation手动重新validation/触发validation?

我创建了自己的条件validation属性,通过inheritanceRequiredAttribute并实现IClientValidatable来validation客户端和服务器上的MVC模型。 我的想法是,如果我的模型上的布尔属性为true,则需要另一个属性。 在视图中,这表示为一个复选框,用于指示是否需要填写文本框。 除了用户执行以下操作时,这非常有效: 选中复选框(现在需要该字段)。 提交表单(客户端validation运行,显示错误消息)。 用户取消选中框(错误消息仍然存在,不再需要字段)。 我想在选中或取消选中复选框时重新validation表单,或者甚至更好地重新validation该字段,以便不再显示错误消息。 我已经尝试了调用jQuery validate()方法的各种组合,但似乎没有什么能够重新运行validation。 我使用以下javascript来设置我的validationfunction和相关的不显眼的适配器。 $.validator.addMethod( “requiredif”, function(value, element, parameters) { var selector = “#” + parameters[“dependentpropertyname”]; var triggerValue = parameters[“triggervalue”].toString().toLowerCase(); var actualValue = $(selector).is(“:checked”).toString().toLowerCase(); if (actualValue === triggerValue) return $.validator.methods.required.call(this, value, element, parameters); return true; }); $.validator.unobtrusive.adapters.add( “requiredif”, [“dependentpropertyname”, “triggervalue”], function(options) { options.rules[“requiredif”] = { dependentpropertyname: options.params[“dependentpropertyname”], triggervalue: […]

validation预填充的jQuery表单(在第一个字段clear,ASP.NET和unobtrustive上无效)

我有一个可以填写,保存,加载和重新编辑的表单。 当它被加载并重新编辑时,它可能开始有效。 当一个字段在加载时有效时,我希望它在编辑时违反规则立即失效。 简而言之,这是我的问题,我怀疑这是一些我找不到的配置选项支持的。 目前,它只在以下情况下正常工作(上述方式):1)编辑,2)然后在有效时场失去焦点,3)然后再次编辑它。 因此,需要额外有效的失去焦点来可视化预填充forms的错误。 如果加载时为空(例如第一次访问),则不应显示错误。 我已在我的框架中使用以下内容: jQuery.validate(’已批准的’,以及我的问题的焦点) 用于ASP.NET MVC 3的jQuery不显眼的validation适配器 我目前没有运行任何自定义代码来激活它,因为’unobtrusive’适配器初始化validation(但我很乐意,解决这个问题)。 我已尝试在页面加载时添加’form.valid()’,但它不能解决上述问题,实际上会破坏更多内容。 谢谢,香农