Jquery MVC3/4验证隐藏字段
我已经为表单设置了模型验证,但验证似乎根本不起作用。我想没有人能帮忙。我尝试过使用下面的解决方法,但这会在firebug中不断出现“未定义”错误 示例解决方案脚本:Jquery MVC3/4验证隐藏字段,jquery,asp.net-mvc-3,jquery-validate,unobtrusive-validation,Jquery,Asp.net Mvc 3,Jquery Validate,Unobtrusive Validation,我已经为表单设置了模型验证,但验证似乎根本不起作用。我想没有人能帮忙。我尝试过使用下面的解决方法,但这会在firebug中不断出现“未定义”错误 示例解决方案脚本: <script type="text/javascript"> $(document).ready(function () { $.validator.setDefaults({ ignore: [] }); }); </script> @Ht
<script type="text/javascript">
$(document).ready(function () {
$.validator.setDefaults({ ignore: [] });
});
</script>
@Html.TextBox("txtCustomer", null, new { @id = "txtCustomer", @class = "txt" })
@Html.HiddenFor(model => model.Customer_ID, new { @id = "hCustomerID" })
隐藏字段示例(注意:当从自动完成字段进行选择时,id被注入隐藏字段):
<script type="text/javascript">
$(document).ready(function () {
$.validator.setDefaults({ ignore: [] });
});
</script>
@Html.TextBox("txtCustomer", null, new { @id = "txtCustomer", @class = "txt" })
@Html.HiddenFor(model => model.Customer_ID, new { @id = "hCustomerID" })
示例模型数据注释
[Range(1, Int32.MaxValue, ErrorMessage = "Please select a customer")]
public int Customer_ID { get; set; }
编辑:错误屏幕截图
很抱歉,我必须发布屏幕截图的链接,因为我的代表分数足够高
编辑:显示页面来源的屏幕截图
在不引人注目的脚本之后,以这种方式更改验证器上的忽略太晚了。这是因为验证器在创建时只提取默认值一次。这个不引人注目的脚本为您创建了验证器。您需要引用现有的验证器对象并对其进行更新 试试这个
<script>
$(document).ready(function () {
$('form').validate().settings.ignore = []
});
</script>
$(文档).ready(函数(){
$('form').validate().settings.ignore=[]
});
如果不必在控制器和相关视图的操作中使用javascript,则可以在验证模型之前添加模型错误。例如:
[HttpPost]
public ActionResult Fix(YourModel mdl)
{
if (mdl.Customer_ID>Int32.MaxValue || mdl.Customer_ID<1)
ModelState.AddModelError("", "Your error message!");
if (ModelState.IsValid)
{
//
//Some code
//
return View("YourView", yourlist);
}
return View(mdl);
}
[HttpPost]
公共行动结果修复(YourModel mdl)
{
如果(mdl.Customer_ID>Int32.MaxValue | | | mdl.Customer_ID)它告诉您什么是未定义的?$.validator.setDefaults({ignore:[]});可能是重复的我尝试了类似的方法,但仍然显示了一个错误,请参考原始帖子的屏幕截图。从这个错误中,“验证不是一个函数”可能是您没有包含jquery验证js文件,或者您在页面中包含的文件不够高-检查这一点,但我认为您需要严格执行问这个问题-你说验证“似乎根本不起作用”,并且您有一个错误“validate is not a function”…这表明您没有客户端验证工作,那么关于验证隐藏字段或对jquery验证设置进行故障排除的问题也是如此吗?我想我只是想寻求一些帮助,以了解如何正确验证隐藏字段。关于为什么它的工作原理与标准字段不同。如果使用:var validator=$(“#mvcForm”).data('validator');validator.settings.ignore=“”,则不适用加号,这似乎允许设置生效。我现在遇到的问题是,即使通过jquery ui autocomplete将值注入隐藏字段,所需的消息也不会消失。