Jquery MVC3在客户端验证后但在提交之前可用吗?
使用Jquery MVC3在客户端验证后但在提交之前可用吗?,jquery,validation,asp.net-mvc-3,jquery-validate,unobtrusive-validation,Jquery,Validation,Asp.net Mvc 3,Jquery Validate,Unobtrusive Validation,使用jquery.validate()库和ASP MVC3 RTMjquery.validate.ubobstrusive库,我想知道是否有一个可用的钩子,可以在验证后但在提交实际表单之前插入一些附加逻辑 换句话说:表单正在提交,验证正在运行(不管它通常做什么),验证没有理由停止表单提交,在这里运行我的代码,然后正常提交 我知道我可以处理表单的submit事件并执行以下操作: $('#MyForm').submit(function() { if (!$(this).valid())
jquery.validate
()库和ASP MVC3 RTMjquery.validate.ubobstrusive
库,我想知道是否有一个可用的钩子,可以在验证后但在提交实际表单之前插入一些附加逻辑
换句话说:表单正在提交,验证正在运行(不管它通常做什么),验证没有理由停止表单提交,在这里运行我的代码,然后正常提交
我知道我可以处理表单的submit
事件并执行以下操作:
$('#MyForm').submit(function() {
if (!$(this).valid())
return false;
// My Code Here
}
。。。我自己调用验证,如果成功,则输入我自己的逻辑。但我觉得这太脏了。我怎么知道这是jquery.validate的提交处理程序中唯一的代码?即使这是唯一正在运行的代码,我真的想复制它吗?我宁愿不必在提交时镜像验证库所做的事情;我只想在验证发生之后,但在表单提交之前注入自己——就像绑定到虚构的$('#MyForm')。lastPossibleMontBeforeSubmit(function(){//mycode Here})代码>
事件
有没有关于“我的代码在这里”应该放在哪里的指针?我相信你可以这样做
$(document).ready(function() {
$("#MyFormform").validator().bind("onSuccess", function(e, els) {
//Code to run after validation succeeds
}
});
我相信你可以这样做
$(document).ready(function() {
$("#MyFormform").validator().bind("onSuccess", function(e, els) {
//Code to run after validation succeeds
}
});
如果只是使用jquery.validate,则可以像下面这样使用成功回调:
$(function () {
$('#MyForm').validate({
success : function(error) {
// additional logic
}
});
});
$(function () {
var settings = $('form').data('validator').settings,
originalSuccess = settings.success;
settings.success = function (error) {
originalSuccess(error);
// additional logic
};
});
但是,由于您使用的是jquery.validate.ubobtrusive,很遗憾,这无法直接完成,因为jquery.validate.ubobtrusive在内部隐藏了对.validate的调用
相反,您需要获取jquery.validate.ubobtrusive传递给的设置/选项对象。validate,捕获它的现有成功处理程序,并将其替换为您自己的成功处理程序,该成功处理程序调用原始的成功处理程序,并且具有以下附加功能:
$(function () {
$('#MyForm').validate({
success : function(error) {
// additional logic
}
});
});
$(function () {
var settings = $('form').data('validator').settings,
originalSuccess = settings.success;
settings.success = function (error) {
originalSuccess(error);
// additional logic
};
});
如果只是使用jquery.validate,则可以像下面这样使用成功回调:
$(function () {
$('#MyForm').validate({
success : function(error) {
// additional logic
}
});
});
$(function () {
var settings = $('form').data('validator').settings,
originalSuccess = settings.success;
settings.success = function (error) {
originalSuccess(error);
// additional logic
};
});
但是,由于您使用的是jquery.validate.ubobtrusive,很遗憾,这无法直接完成,因为jquery.validate.ubobtrusive在内部隐藏了对.validate的调用
相反,您需要获取jquery.validate.ubobtrusive传递给的设置/选项对象。validate,捕获它的现有成功处理程序,并将其替换为您自己的成功处理程序,该成功处理程序调用原始的成功处理程序,并且具有以下附加功能:
$(function () {
$('#MyForm').validate({
success : function(error) {
// additional logic
}
});
});
$(function () {
var settings = $('form').data('validator').settings,
originalSuccess = settings.success;
settings.success = function (error) {
originalSuccess(error);
// additional logic
};
});
不确定您在这里引用的是什么框架。您是否有指向此onSuccess方法文档的链接?只执行$('#MyForm').validator()是一个错误,因此我不确定您在这里得到了什么。您确定这是针对jquery.validate/jquery.validate.ubobstrusive的吗?不确定您在这里引用的是什么框架。您是否有指向此onSuccess方法文档的链接?只执行$('#MyForm').validator()是一个错误,因此我不确定您在这里得到了什么。您确定这是针对jquery.validate/jquery.validate.ubobursive的吗?