Dis*_*ile 18 asp.net-mvc asp.net-mvc-validation fluentvalidation unobtrusive-validation asp.net-mvc-3
我在ASP.net MVC 3中有以下视图:
@model Models.CreateProjectViewModel
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.min.js")"></script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"></script>
@using( Html.BeginForm() ) {
@Html.TextBoxFor(m => m.ProjectName)
@Html.ValidationMessageFor(m => m.ProjectName)
<p>
<input type="submit" value="Save" />
</p>
}
Run Code Online (Sandbox Code Playgroud)
我正在使用不引人注目的javascript与jQuery和Fluent验证框架.
当我单击"保存"按钮并且验证失败时,是否有一些事件我可以挂钩调用一些自定义的JavaScript?
function validationFailed() {
// do something here only if validation failed
}
Run Code Online (Sandbox Code Playgroud)
我如何与验证绑定,以便在失败时(并且只有失败)我可以调用validationFailed()函数.
Mar*_*ger 36
正如jQuery/Validation文档所述,您可以使用invalidHandler在提交无效表单时做出反应.
但是由于MVC不引人注意的验证会实例化验证本身,因此您必须稍后挂钩此事件.
使用与jQuery/Validation完全相同的机制:您可以将代码绑定到表单元素自定义事件' invalid-form.validate ',对应于invalidHandler!
$(document).ready(function() {
$('#myform').bind('invalid-form.validate',function(){
alert('invalid form!');
});
});
Run Code Online (Sandbox Code Playgroud)
给你的表单一个id使用:
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myform" })) {
}
Run Code Online (Sandbox Code Playgroud)
更新:
获取现有验证对象的另一种方法是在表单上调用validate().如果已经创建了此表单的验证器,则将返回该验证器:
编辑:初始化发生后,更改.settings.invalidHandler为时太晚,无法绑定.因此,除非您重新启动验证器,否则以下代码段将不再起作用.
$(document).ready(function() {
var existingValdiation = $("#myform").validate();
//the settings property corresponds to the options parameter
existingValdiation.settings.invalidHandler = function (form) {
alert('invalid form!');
};
// not recommended:
// re-init would bind settings.invalidHandler to 'invalid-form.validate'
// existingValdiation.init();
});
Run Code Online (Sandbox Code Playgroud)
小智 4
你可以使用invalidHandler,我相信这是在jquery验证中。
invalidHandler Callback
提交无效表单时自定义代码的回调。使用事件对象作为第一个参数和验证器作为第二个参数进行调用。
| 归档时间: |
|
| 查看次数: |
9887 次 |
| 最近记录: |