Tag: unobtrusive validation

jQuery valdiator方法的全局设置

对于我这个简单的问题,我感到很抱歉,但我无法解决这个问题。 我如何使这个jqueryvalidation器方法全局工作。 我的布局中有这个代码: jQuery.validator.methods.number = function (value, element) { return this.optional(element) || !isNaN(Globalize.parseFloat(value)); }; jQuery(document).ready(function () { jQuery(function () { Globalize.culture(“ro-RO”); }); }); 但这不适用于我的部分视图,所以为了使这段代码能够工作,我必须把它放在我所有的部分视图中…… jQuery.validator.methods.number = function (value, element) { return this.optional(element) || !isNaN(Globalize.parseFloat(value)); }; jQuery(document).ready(function () { jQuery(function () { Globalize.culture(“ro-RO”); }); }); @using (Ajax.BeginForm(“CreateSemifabricat_AddResourceToProduct”, “Product”, null, new AjaxOptions{ HttpMethod = “POST”, InsertionMode = […]

如何使用强类型枚举的jQueryvalidation插件?

我使用强类型视图列出对象的枚举,如下所示: @model IEnumerable @Html.EditorForModel() 假设Foo有一个简单的数字属性,我想在客户端validation: public class Foo { [Required] public int Bar { get; set; } } 现在,此对象的编辑器模板如下所示: @model Foo @Html.TextBoxFor(m => m.Bar) 除了默认模型绑定器生成类似[0].Bar名称之外,这种方法[0].Bar 。 但是, [和]是jQuery validate插件的无效字符,因此每当它尝试validation我的输入时,我总是收到以下错误: 语法错误,无法识别的表达式:label [for ='[0] .Bar’],label [for ='[0] .Bar’] *,#[0] .Bar 有没有办法让插件工作,同时保持我的视图绑定到模型? 更新 :我正在使用jQuery Validate和Microsoft的Unobstrusive Validation库(是的,默认的ASP.NET MVC设置),所以我根本没有直接编写任何validation代码,只是感兴趣!

如何覆盖一个表单的成功行为?

我们正在研究Asp.Net MVC ,使用带有Bootstrap JQuery Validation和jquery.validate.unobtrusive在我们的表单中显示成功和错误状态。 这或多或少是我们默认的配置: jQuery.validator.setDefaults({ ignore: “”, validClass: “has-success”, errorClass: “has-error”, highlight: function(element, errorClass, validClass) { $(element).addClass(errorClass).removeClass(validClass); $(element).closest(‘.form-group’).removeClass(validClass).addClass(errorClass); } }, unhighlight: function(element, errorClass, validClass) { $(element).removeClass(errorClass).addClass(validClass); $(element).closest(‘.form-group’).removeClass(errorClass).addClass(validClass); } } }); 为页面上的特定表单覆盖此选项的正确方法是什么? 我不想完全覆盖默认值。 这是我想要在一个页面中只对一个表单执行的更改(用户请求了不同的行为)。 表单没有validation器,因此它永远不会显示/使用错误样式,但是当用户在字段上选择一个值时,“成功”样式无论如何都会启动,我们也不想显示它。 覆盖页面上特定表单的突出显示和unhilight行为的正确方法是什么?

jquery.validate似乎不适用于某些输入,其中name值包含一个点,即RegisterModel.Pssword

在我看来,如果我使用的模型只有标量,基本属性,即[RegisterModel],一切正常。 但是如果我使用一个视图模型类型,其中一个或多个属性设置为另一个.net复杂类型,比如[RegisterModelAndLogOnModel],则生成的HTML无法与jQueryvalidation插件一起正常工作。 使用jQuery 1.7.2它总是告诉我确认密码与密码不匹配,在jQuery 1.8.2中它只是简单地拒绝工作和错误。 我现在已经将问题指向RegisterModel.ConfirmPassword输入。 作品: @Html.LabelFor(m => m.Password) @Html.PasswordFor(m => m.Password) @Html.ValidationMessageFor(m => m.Password) @Html.LabelFor(m => m.ConfirmPassword) @Html.PasswordFor(m => m.ConfirmPassword) @Html.ValidationMessageFor(m => m.ConfirmPassword) 不起作用: @Html.LabelFor(m => m.RegisterModel.Password) @Html.PasswordFor(m => m.RegisterModel.Password) @Html.ValidationMessageFor(m => m.RegisterModel.Password) @Html.LabelFor(m => m.RegisterModel.ConfirmPassword) @Html.PasswordFor(m => m.RegisterModel.ConfirmPassword) @Html.ValidationMessageFor(m => m.RegisterModel.ConfirmPassword)

哪个Data Annotation属性创建此validation属性?

假设我们有这样的模型: public class TheViewModel { public string DateTime? Image_Date { get; set; } } 它被添加到Razor视图中,如下所示: Html.TextBoxFor(model => model.Image_Date) 然后在浏览器中呈现以下内容: 属性data-val-date是我感兴趣的。它显然是由MVC的“不引人注目的”jQueryvalidation集成注入的。 那么,哪些数据注释会覆盖HTML属性中的措辞? 例如, [Required(ErrorMessage=”This field is required!”)]将覆盖标准“字段{0}是必需的”。 信息。 尝试失败: [DataType(DataType.Date, ErrorMessage = “Must be a valid date.”)]似乎对客户端validation没有任何作用。 [DisplayName(“…”)]更改模式的通配符部分,但显然不会影响模式本身。

使用内置的ASP.NET MVCvalidation和向导方法

我正在使用我的向导的JQuery Steps Plugin基本表单示例 。 在此示例中,您将注意到他们正在使用JQuery Validate插件,这是ASP.NET MVC在提交表单时自动使用的插件。 我试图弄清楚当用户点击继续时如何validation当前步骤中的表单字段,但使用ASP.NET MVC语法,因为我希望我的数据注释仍然有效。 这是我的ASP.NET MVC版本的基本表单示例(注意我有asp-for和asp-validation-for set for everything): Basic Info Location Contact Info 例如,当用户单击“下一步”时,我希望“名称”字段进行validation。 当用户在步骤2中单击下一步时,我希望City字段进行validation,依此类推……我习惯一次提交单个表单并允许ASP.NET MVC自动validation,在这种情况下我需要在实际提交之前要求它validation几个不同的时间。 这是我的JS: var form = $(“#example-form”); form.validate({ errorPlacement: function errorPlacement(error, element) { element.before(error); }, rules: { confirm: { equalTo: “#password” } } }); form.children(“div”).steps({ headerTag: “h3”, bodyTag: “section”, transitionEffect: “slideLeft”, onStepChanging: function(event, currentIndex, newIndex) […]

jqueryvalidation未加载requirejs

我在RequireJS中有一个主模块: require([ ‘jquery’, ‘jquery.validate’, ‘jquery.validate.unobtrusive’ ], function ($) { $(document).ready(function () { var validator = $(“form”).validate(); if ($(“#txtFirstName”).val() !== “”) validator.element(“#txtFirstName”); }); }); 当我加载此页面时,出现JavaScript错误: TypeError:$(…)。validate不是函数var validator = $(“form”)。validate(); ** 我现在不知道为什么? 加载所有脚本:

匹配’密码’和’管理员’不工作的Jqueryvalidation

我曾尝试为密码编写正则表达式: public class ApplicationUser : IdentityUser, ITimeStamps { public const string PasswordRegularExpression = @”admin|password”; // public const string PasswordRegularExpression = @”/admin|password/i”; // Tried this too // public const string PasswordRegularExpression = @”/(admin|password)/i”; // Tried this too 这超出了正常的Microsoft身份标识: manager.PasswordValidator = new PasswordValidator { RequiredLength = 6, RequireNonLetterOrDigit = false, RequireDigit = true, RequireLowercase = false, RequireUppercase […]

动态删除ASP MVC中元素的必需属性?

在使用不显眼validation的ASP MVC项目中,有没有办法从元素中动态删除Required属性? 元素在视图模型中使用Required注释进行修饰。 我想我可以通过使用JQuery删除html属性“data-val-required”来删除它,但客户端validation仍然会根据需要处理元素。 是否无法通过操纵不显眼的validation属性来操纵元素的validation? 这是我尝试过的,但它没有用。 如果未选中复选框,我想删除所需的属性。 $(“#chkTempHire”).click(function () { var checked = $(this).attr(“checked”); var attr = $(“#txtTempHireEndDate”).attr(“data-val-required”); var hasAttr = false; if (typeof attr !== typeof undefined && attr !== false) hasAttr = true; if (!checked && hasAttr) $(“#txtTempHireEndDate”).removeAttr(“data-val-required”); }); 我错过了什么,还是不可能? 谢谢!

客户端validation不使用重用和嵌套的复杂属性

我有一个asp.net MVC 5应用程序,我尝试在.cshtml文件中的不同位置重用嵌套的复杂视图模型类。 重用的复杂视图模型被命名为具有许多属性的SchoolPersonViewModel ,并且Phone和Email属性被validation为“如果未提供电话,则必须提供电子邮件。如果提供电话,则电子邮件是可选输入”。 我写了一个自定义服务器和客户端validation,但它适用于服务器端。 但是客户端validation工作不正常。 例如,即使填充了关联的Phone文本框,也会提示填写Email文本框。 请参阅附件。 例如。 请帮忙。 先谢谢你了。 我知道问题来自错误:3个电子邮件文本框有3个validation属性,其值与data-val-emailrequired-stringphoneprop=”Phone” 。 运行时的Phone值导致jQueryvalidation机器的歧义(缺少唯一性),但我不知道如何解决它。 请参阅下面的渲染属性。 请帮忙。 先感谢您。 我的代码详情: 在我的cshtml视图中,我将视图模型复杂类( SchoolPersonViewModel )调用3次:一个用于Student ,一个用于Father ,一个用于Mother 。 C#MVC模型类 public class SchoolPersonViewModel { [DisplayName(“Phone”)] public string Phone { get; set; } [DisplayName(“Email”)] [EmailRequired(StringPhonePropertyName = “Phone”, ErrorMessage = “Email is required if Phone is not provided”)] public string Email […]