我正在构建一个MVC 3应用程序。MVC 3 - 在客户端设置非必需字段为
我可以在客户端设置一个非必填字段(使用JavaScript/jQuery)吗?
当页面中的东西发生变化时,我需要它动态地动态显示。
更新:我查看了我的页面的源代码,并看到了将验证规则推入其中的window.mvcClientValidationMetadata数组。我可以用它来满足我的需求吗?
谢谢
我正在构建一个MVC 3应用程序。MVC 3 - 在客户端设置非必需字段为
我可以在客户端设置一个非必填字段(使用JavaScript/jQuery)吗?
当页面中的东西发生变化时,我需要它动态地动态显示。
更新:我查看了我的页面的源代码,并看到了将验证规则推入其中的window.mvcClientValidationMetadata数组。我可以用它来满足我的需求吗?
谢谢
你可以在客户端做任何你想做的事情。
您可以连接到表单提交事件,并在其中检查该字段是否已填充,并提交表单或根据需要显示错误消息。
当然,如果JavaScript被关闭,或者如果用户知道这个字段可能最终没有被填充,所以总是检查服务器端(除了Model.IsValid
,你可以添加检查你没有的字段专门添加了RequiredAttribute
)。
如果您的验证逻辑很复杂,另一种方法是覆盖ModelMetadata
以提供自定义验证。
您可以设置验证规则是这样的:
$('element').rules('add',{
required: true
});
,并删除它:
$('element').rules('remove', 'required');
或者你可以添加需要的值有条件地自定义验证方法。看到这个:http://docs.jquery.com/Plugins/Validation/Validator/addMethod
图书馆“规则”依赖于哪个?我得到“对象没有方法”的规则“。 – 2012-08-06 04:14:32
jquery.validate.unobtrusive.js – karaxuna 2012-08-06 07:20:35
我的MVC应用程序不使用它。 – 2012-08-06 08:30:04
为什么要这样做,如果我可以利用MVC的内置客户端验证API脚本? – 2012-08-05 14:18:09
@YairNevet - 你只是说这个领域不是必需的。我明白这意味着你的模型不会有'RequiredAttribute'。当然,如果你想要的话,把这个属性添加到模型的属性上,你就可以走了。 – Oded 2012-08-05 14:19:17
只有在某些情况下才需要该字段,而不是处于初始化状态。 – 2012-08-05 14:20:30