Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript MVC 3-在客户端将非必填字段设置为required_Javascript_Jquery_Asp.net Mvc 3_Asp.net Mvc Validation - Fatal编程技术网

Javascript MVC 3-在客户端将非必填字段设置为required

Javascript MVC 3-在客户端将非必填字段设置为required,javascript,jquery,asp.net-mvc-3,asp.net-mvc-validation,Javascript,Jquery,Asp.net Mvc 3,Asp.net Mvc Validation,我正在构建一个MVC3应用程序 我可以在客户端将非必填字段设置为required(使用JavaScript/jQuery)吗 当页面中的内容发生变化时,我需要它是动态的 更新:我查看了页面的源代码,看到了window.mvcClientValidationMetadata数组,其中包含了验证规则。我能用它来满足我的需要吗 谢谢您可以在客户端做任何您想做的事情 您可以连接到表单提交事件,并在其中检查字段是否已填充,然后根据需要提交表单或显示错误消息 当然,如果JavaScript被关闭,或者如果用

我正在构建一个MVC3应用程序

我可以在客户端将非必填字段设置为required(使用JavaScript/jQuery)吗

当页面中的内容发生变化时,我需要它是动态的

更新:我查看了页面的源代码,看到了window.mvcClientValidationMetadata数组,其中包含了验证规则。我能用它来满足我的需要吗


谢谢

您可以在客户端做任何您想做的事情

您可以连接到表单提交事件,并在其中检查字段是否已填充,然后根据需要提交表单或显示错误消息

当然,如果JavaScript被关闭,或者如果用户足够了解此字段可能最终未填充,那么请始终在服务器端进行检查(除了
Model.IsValid
,您还可以添加对未专门添加
RequiredAttribute
的字段的检查)


如果验证逻辑复杂,另一种选择是重写以提供自定义验证。

您可以在客户端执行任何您想要的操作

您可以连接到表单提交事件,并在其中检查字段是否已填充,然后根据需要提交表单或显示错误消息

当然,如果JavaScript被关闭,或者如果用户足够了解此字段可能最终未填充,那么请始终在服务器端进行检查(除了
Model.IsValid
,您还可以添加对未专门添加
RequiredAttribute
的字段的检查)


如果验证逻辑复杂,另一种选择是重写以提供自定义验证。

您可以如下设置验证规则:

$('element').rules('add',{
    required: true
});
并将其删除:

$('element').rules('remove', 'required');

或者,您可以添加自定义验证方法,该方法将有条件地要求值。请参见:

您可以这样设置验证规则:

$('element').rules('add',{
    required: true
});
并将其删除:

$('element').rules('remove', 'required');

或者,您可以添加自定义验证方法,该方法将有条件地要求值。请参见:

如果我可以利用MVC的内置客户端验证API脚本,为什么要这样做?@YairNevet-您刚才说该字段不是必需的。我理解这意味着您的模型上不会有
RequiredAttribute
。当然,如果愿意,可以将此属性添加到模型的属性中,这样就可以了。只有在某些情况下才需要该字段,而不是在初始化状态下。@YairNevet-这就是为什么需要自定义逻辑。你不能添加一个有时适用有时不适用的
RequiredAttribute
。这就是为什么我在客户端需要它。如果我可以利用MVC的内置客户端验证API脚本,为什么要这样做?@YairNevet-你刚才说这个字段不是必需的。我理解这意味着您的模型上不会有
RequiredAttribute
。当然,如果愿意,可以将此属性添加到模型的属性中,这样就可以了。只有在某些情况下才需要该字段,而不是在初始化状态下。@YairNevet-这就是为什么需要自定义逻辑。您无法添加有时适用,有时不适用的
RequiredAttribute
。这就是为什么我需要在客户端添加它。规则依赖于哪个库?我得到了“对象没有方法‘规则’”.jquery.validate.unobtrusive.js创建mvc 3和mvc 4项目(不知道早期版本)时,已经包含了以下文件:jquery.validate.unobtrusive.js和jquery.validate.js。如果不是“规则”依赖于哪个库,则包括它?我得到了“对象没有方法‘规则’”.jquery.validate.unobtrusive.js创建mvc 3和mvc 4项目(不知道早期版本)时,已经包含了以下文件:jquery.validate.unobtrusive.js和jquery.validate.js。如果不是,就包括在内