我正在构建一个 MVC 3 应用程序。
我可以在客户端(使用 JavaScript / jQuery)将非必填字段设置为必填吗?
当页面中的事情发生变化时,我需要它是动态的。
更新:我查看了我的页面的源代码,并看到了将验证规则推入其中的 window.mvcClientValidationMetadata 数组。我可以用它来满足我的需要吗?
谢谢
我正在构建一个 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