好的,这是交易,我已经看到有关这个问题的几个职位,但没有任何工作对我来说。 基本上,我有部分视图加载的select下拉列表,我试图根据之前select的下拉列表筛选每个后续下拉列表的内容。 如果我只是调用div容器中的部分视图,并加载页面,从数据注释validation工作正常, 主要是必需的属性 。 但是,如果我尝试通过AJAX加载相同的部分,则需要validation不起作用,任何人都可以在此之后发布表单和KABOOM。 我发现人们说,在callback成功,你需要有客户端validation重新parsing的forms,我正在尝试,但它似乎并没有工作。 我有一个看起来像这样的看法… @model Area51.Models.Workflow.AddReportableItemToBatchActionModel @{ ViewBag.Title = "Add Reportable Item to Batch"; Layout = "~/Views/Shared/_Layout.cshtml"; } <script type="text/javascript"> $(function () { var fadeDelay = 150; $(".jqDatePicker").datepicker({ dateFormat: 'm/d/yy', onSelect: function (date) { $("#categoryContainer").show(fadeDelay); } }); $('#Category').change(function () { RetrieveItemsForCategory(); $("#itemContainer").show(100); }); $('#Item').live('change', function () { RenderPartialForUOMByItem(); }); function RetrieveItemsForCategory() […]
鉴于以下视图模型: public class SomeViewModel { public bool IsA { get; set; } public bool IsB { get; set; } public bool IsC { get; set; } //… other properties } 我希望创build一个自定义属性,validation至less有一个可用的属性是真实的。 我设想能够将一个属性附加到一个属性,并像这样分配一个组名: public class SomeViewModel { [RequireAtLeastOneOfGroup("Group1")] public bool IsA { get; set; } [RequireAtLeastOneOfGroup("Group1")] public bool IsB { get; set; } [RequireAtLeastOneOfGroup("Group1")] public bool […]
编辑 – 我们正在使用MVC4开发预览…. 我正在实施一个FishingTrip类的编辑页面。 FishingTrip包含简单Crew对象(即FishingTripID,CrewID,CrewPosition)的子集合。 我正在使用Jarrett Meyer的方法从Crew集合中添加,编辑和删除。 我使用不显眼的validation来指定Crew的属性都是Required 。 我的问题:当我从列表中逻辑删除一个项目(按照Jarrett的方法),我不希望这个项目被validation。 我已成功调整客户端上的“removeRow”方法以禁用对逻辑删除的项目的不显眼的validation,以便尽pipe存在包含空白字段的项目,表单将张贴。 在我的控制器方法[HttpPost] Edit , ModelState.IsValid作为假(由于包含空白字段的逻辑删除项目,因为预期的开始)。所以,我从我的ViewModel ….删除该项目,但ModelState.IsValid是仍然是假的。 总之,我(想我)想要修改我的ViewModel在控制器方法内删除违规项目,然后调用某种“重新validation”,并具有ModelState.IsValid显示为true。 有任何想法吗?
谁能告诉我为什么客户端validation不工作在我的MVC 4应用程序。 _layout.schtml @Scripts.Render("~/bundles/jquery") @RenderSection("scripts", required: false) 在我的web.config中有: <appSettings> <add key="ClientValidationEnabled" value="true" /> <add key="UnobtrusiveJavaScriptEnabled" value="true" /> </appSettings> 在我的login.cshtml页面中有: @using (Html.BeginForm()) { <div class="formscontent"> <ol> <li> @Html.LabelFor(x => x.AgreementNumber) <br /> @Html.TextBoxFor(x => x.AgreementNumber, new { size = "30" }) <br /> @Html.ValidationMessageFor(m => m.AgreementNumber) <br /> <br /> </li> <li> @Html.LabelFor(x => x.UserName) <br […]
我有问题试图让不显眼的jQueryvalidation工作与通过AJAX调用dynamic加载的部分视图。 我花了好几天的时间试图让这个代码没有运气的工作。 这是观看: @model MvcApplication2.Models.test @using (Html.BeginForm()) { @Html.ValidationSummary(true); <div id="res"></div> <input id="submit" type="submit" value="submit" /> } 部分观点: @model MvcApplication2.Models.test @Html.TextAreaFor(m => m.MyProperty); @Html.ValidationMessageFor(m => m.MyProperty); <script type="text/javascript" > $.validator.unobtrusive.parse(document); </script> 该模型: public class test { [Required(ErrorMessage= "required field")] public int MyProperty { get; set; } } 控制器: public ActionResult GetView() { return PartialView("Test"); } […]
我使用ASP.NET MVC 3中新的不显眼的validationfunction来validation表单。 所以没有编写的代码来设置jQueryvalidation来开始validation我的表单。 这一切都通过加载jQuery.validate.unobtrusive.js库来完成。 不幸的是,我需要在“你确定吗? 当表单有效但提交之前的消息框。 随着jQueryvalidation你会添加选项handleSubmit初始化时如此: $("#my_form").validate({ rules: { field1: "required", field1: {email: true }, field2: "required" }, submitHandler: function(form) { if(confirm('Are you sure?')) { form.submit(); } } }); 但是使用不显眼的库时,您不需要初始化。 任何想法在哪里/如何添加提交处理程序在这种情况下? 谢谢
我在这里问类似的问题,但在这个问题我使用另一种实现,正是这样下面的代码显示我的实现: 模型: public class Department { public long Id { get; set; } [IsDateAfter("Date2", true, ErrorMessage = "O My")] public DateTime Date1 { get; set; } public DateTime Date2 { get; set; } public string Name1 { get; set; } public string Name2 { get; set; } } 自定义validation器: public sealed class IsDateAfter : ValidationAttribute, […]
假设这个模型: Public Class Detail … <DisplayName("Custom DisplayName")> <Required(ErrorMessage:="Custom ErrorMessage")> Public Property PercentChange As Integer … end class 和观点: @Html.TextBoxFor(Function(m) m.PercentChange) 将继续这个HTML: <input data-val="true" data-val-number="The field 'Custom DisplayName' must be a number." data-val-required="Custom ErrorMessage" id="PercentChange" name="PercentChange" type="text" value="0" /> 我想自定义data-val-number错误消息,我猜是因为PercentChange是一个Integer 。 我正在寻找这样一个属性来改变它, range或任何相关的不工作。 我知道有机会编辑不引人注目的js文件本身或在客户端覆盖它。 我想改变data-val-number的错误信息就像服务器端的其他人一样。
我试图在不同的浏览器中使用dateselect器的最简单的情况。 我怀疑我做了一件非常简单的事情,但经过大量的search,我还没有find解决办法。 下面是一些代表我正在尝试的示例代码。 如果我使用Chrome(v12.0.742.122)并从13/08/2011挑选一个date,jQueryvalidation逻辑将不会允许页面提交,即使我明确指定格式为“dd / mm / YY”。 如果我将格式更改为“dd / M / yy”,并select一个像2011年8月13日那样的date,它可以在Chrome中运行,但不会在IE中提交给我(v8.0.7600.16385)。 在FireFox(v3.6.18)中,这两种格式都可以工作。 我需要什么validation脚本才能在Chrome中支持“dd / mm / yy”date格式? <html> <head> <link rel="stylesheet" type="text/css" href="jquery-ui.css" /> <script type="text/javascript" src="jquery-1.4.4.js"></script> <script type="text/javascript" src="jquery.validate.js"></script> <script type="text/javascript" src="jquery.validate.unobtrusive.js"></script> <script type="text/javascript" src="jquery-ui.js"></script> <script type="text/javascript"> $(document).ready(function () { $('.date').datepicker({ dateFormat: 'dd/mm/yy' }); $.validator.addMethod("dateRule", function(value, element) { return true; }, "Error […]
我正在与ASP.Net MVC3 ,更简单的方法来使用客户端validation将启用jquery.validate.unobtrusive 。 一切工作正常,从服务器的东西。 但是当我尝试用javascript注入一些新的“input”时,我知道我需要调用$.validator.unobtrusive.parse()来重新validationvalidation。 但是,所有这些dynamic注入的域都不起作用。 更糟糕的是,我尝试手动绑定使用jquery.validate ,它也不工作。 有什么想法吗?