Tag: unobtrusive validation

如果不显眼的validation无效则显示div,如果在MVC 3中有效则隐藏它

这是我的编辑视图的一部分: @Html.LabelFor(model => model.MainModel.StartDate) @Html.TextBoxFor(model => model.MainModel.StartDate) @Html.ValidationMessageFor(model => model.MainModel.StartDate) My content 因此,众所周知,当我的模型中的StartDate字段无效时,显示错误消息并且如果有效则隐藏它。 现在我想为此过程添加另一个操作。 我需要如果StartDate值为Invalid show “targetDiv” div ,如果StartDate值为Valid则隐藏它。 你的建议是什么?

en-GB日期不显眼的validation

我正在使用asp.net MVC4设计一个数据输入表单,它有一个类型为date的输入。 在chrome和jQueryUI datepicker中使用不显眼的jQuery库我仍然收到错误(字段news_date必须是日期。),在选择正确的日期格式后,使用datepicker(即14/02/2013)并提交表单。 一些搜索建议我应该使用jQuery.globilization库。 因此,在阅读文档后,我添加了对以下脚本的引用。 $(document).ready(function () { $.culture = Globalize.culture(“en-GB”); $.validator.methods.date = function (value, element) { return this.optional(element) || Globalize.parseDate(value, “dd/MM/yyyy”, “en-GB”); } }); 但是我仍然得到错误 如果我在chrome中调试上面的代码我可以看到“value”的值是“2014-02-14”。 下面是渲染的html。 $(function () { $(“.datepicker”).datepicker({ dateFormat: “dd/MM/yyyy” }); }); The field news_date must be a date. 更新 :顺便提一下,如果我将validation器方法更改为硬编码。 即 $.validator.methods.date = function (value, element) { return this.optional(element) […]

jQuery自定义属性的不显眼的客户端validation

我已经创建了一个自定义validation属性,它在服务器端工作(在表单发布后)但我无法让validation工作在客户端。 自定义属性是: public class ReasonableAttribute : ValidationAttribute, IClientValidatable { public override bool IsValid(object value) { return Approval.IsNumberReasonable(value.ToString()); } public IEnumerable GetClientValidationRules(ModelMetadata metadata, ControllerContext context) { ModelClientValidationRule rule = new ModelClientValidationRule(); rule.ErrorMessage = FormatErrorMessage(metadata.GetDisplayName()); rule.ValidationType = “reasonable”; yield return rule; } } IsNumberReasonable()函数只对字段输入进行一些检查,以确保它们输入的内容可以合理地为批准号(例如,不为空,或“未知”或类似的东西)返回bool true/false 。 我的模型然后包含: [Display(Name = “Approval Number”] [Reasonable(ErrorMessage = “Please enter a reasonable […]

添加“Microsoft.jQuery.Unobtrusive.Validation”包请求jQuery 1.4.1?

在其中一个项目中,我需要重新安装jQuery NuGet包(一个MVC解决方案)。 还有一个“Microsoft.jQuery.Unobtrusive.Validation”,我应该在删除jQuery包之前卸载它。 现在我尝试(重新)安装jQuery包,以及之前删除的所有依赖包。 “Microsoft.jQuery.Unobtrusive.Validation”包打破说: 试图解决依赖’jQuery(≥1.8)’。 试图解决依赖’jQuery.Validation(≥1.8)’。 试图解决依赖’jQuery(≥1.3.2&&≤1.6)’。 将“jQuery 1.8.0”更新为“jQuery 1.4.1”失败了。 无法找到与’jQuery 1.4.1’兼容的’Microsoft.jQuery.Unobtrusive.Validation’版本。 是吗? 我需要使用最新的jQuery(2.0.xx)! 我应该注意到类似的“Microsoft.jQuery.Unobtrusive.Ajax”包没有这个’bug’。 安装没有问题。 PS。 现在我尝试安装(非Microsoft)jQuery.Validation … 这是错误日志: 试图解决依赖’Microsoft.jQuery.Unobtrusive.Validation(≥2.0.20613.0)’。 试图解决依赖’jQuery.Validation(≥1.8&& <2.0)'。 试图解决依赖’jQuery(≥1.3.2&&≤1.6)’。 安装’jQuery 1.4.1’。 成功安装了“jQuery 1.4.1”。 安装’jQuery.Validation 1.8’。 成功安装’jQuery.Validation 1.8’。 安装’Microsoft.jQuery.Unobtrusive.Validation 2.0.20710.0’。 成功安装了“Microsoft.jQuery.Unobtrusive.Validation 2.0.20710.0”。 安装’jQuery.Validation.Unobtrusive 2.0.20710.0’。 成功安装’jQuery.Validation.Unobtrusive 2.0.20710.0’。 安装失败。 滚回来… 将“jQuery 1.9.0”更新为“jQuery 1.4.1”失败了。 无法找到与’jQuery 1.4.1’兼容的’bootstrap,jQuery.BlockUI,Microsoft.jQuery.Unobtrusive.Ajax’版本。

MVC-3 / jQuery:停止validation我的复选框

我有MVC-3用户控件(html帮助器和aspx视图引擎)。 一些如何在我提交表单jQuery un-obtrusivevalidation时启动并要求我检查所有复选框。 我该如何预防呢? 更多信息: 1)我的模型中没有必需的属性。 2)我在telerik gridview中使用此复选框 namespace Alpha.Views { public class AlphaCheckBoxControl : ViewUserControl { } public class AlphaCheckBox { public bool isChecked; public string name { get; set; } public MvcHtmlString labelText; public bool readOnly; public bool visible { get; set; } public IDictionary htmlAttributes() { var dict = new Dictionary(); if […]

如何在$ .ajax()之前或之前强制进行客户端validation

我有一个表单和不引人注目的validation已启用。 默认情况下,在提交方法中,客户端validation会被触发,并且(如果您有任何错误)表单如下所示: 甚至在将任何数据发送到服务器之前就会进行validation。 现在,如果要使用$ .ajax方法,则此行为不起作用。 客户端validation不起作用。 您必须手动检查javascript中的所有字段,失去DataAnnotations的所有优点。 有没有更好的解决方案? 我可以使用jquery的submit(),但我猜它没有像$ .ajax这样的回调。

如何使用jquery unobtrusivevalidation使用3个下拉列表(日,月,年)validation日期?

我有一个模型来validation,问题是出生日期。 它必须由3个下拉列表组成(日,月,年)。 @Html.LabelFor(m => m.DateOfBirth, new { @class = “label-div” }) @Html.Telerik().DropDownList().Name(“DobDay”).BindTo((SelectList)ViewData[“Days”]).HtmlAttributes(new {id = “DobDaySel”}) @Html.Telerik().DropDownList().Name(“DobMonth”).BindTo((SelectList)ViewData[“Months”]).HtmlAttributes(new { id = “DobMonthSel”}) @Html.Telerik().DropDownList().Name(“DobYear”).BindTo((SelectList)ViewData[“Years”]).HtmlAttributes(new { id = “DobYearSel” }) @Html.ValidationMessageFor(m => m.DateOfBirth) 在服务器端,我这样做 [HttpPost] public ActionResult Register(RegistrationModel regInfo, int DobDay, int DobMonth, int DobYear) { SetRegisterViewData(DobDay, DobMonth, DobYear); if (DobDay == 0 || DobMonth == 0 && DobYear […]

mvc3validation输入’not-equal-to’

我的表单具有默认帮助文本的输入,用于指导用户输入的内容(而不是使用标签)。 这使得validation变得棘手,因为输入值永远不会为空。 如何扩展不显眼的validation来处理这个问题? 如果姓名输入等于“请输入您的姓名……”,则表单无效。 我开始阅读Brad Wilson关于validation适配器的博客文章 ,但我不确定这是否是正确的方法? 我需要能够根据字段validation不同的默认值。 谢谢

无法在jquery ajaxpost上使用mvc 3进行不显眼的validation

我在使用MVC3进行validation方面遇到了很多麻烦。 我直接加载页面时工作正常,但是当我使用jquery AJAX POST时它不会validation: 这个表单使用$(‘#modal-dialog’).load(‘/DartsMVC/Restaurant/Edit/13’) ,这是呈现的HTML: Restaurant Name 拦截表单/提交使用AJAX POST。 post完成后,模式对话框会自动弹出并关闭。 我想在发送post之前validation表单: // force change the submit data to an ajax POST (usually ‘save’, ‘delete’ button) $(‘#modal-dialog’).delegate(‘form’, ‘submit’, function (e) { e.preventDefault(); var form = $(this); form.validate(); // does nothing if (form.valid()) { $.ajax({ url: form.attr(‘action’), type: “POST”, data: form.serialize(), success: function (data) { $(‘#modal-dialog’).dialog(‘close’); […]

使用jQuery Unobtrusive Validation禁用元素validation

通过某种表单生成器,在页面上呈现元素列表,并且它们都具有对它们的validation。 当我查看HTML源代码时,我看到如下内容: 我需要以某种方式动态地启用/禁用此类元素的validation。 我尝试启用/禁用data-val属性,方法是将其设置为false ,然后再返回true 。 但它似乎没有回应。 validation始终存在! 任何人都知道如何以动态方式启用/禁用某些字段的validation?