实现onSubmit事件后,jQuery非侵入式验证丢失 [英] Jquery Unobtrusive validation lost after implementing onSubmit event
本文介绍了实现onSubmit事件后,jQuery非侵入式验证丢失的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用ASP.NET MVC.在将事件附加到表单的onSubmit事件之前,我的验证效果很好.
I'm using ASP.NET MVC. My validation works well until I attached an event to the form's onSubmit event.
这是我的表单的外观:
@using (Html.BeginForm("Recover", "Auth", FormMethod.Post, new { Id = "RecForm", onSubmit = "return Events.Submit(this,event)" }))
{
@Html.TextBoxFor(model => model.Email)
@Html.ValidationMessageFor(model => model.Email)
<input type="submit" value="Recover" />
}
Javascript(可以正常工作,只需将其放在此处,以便您可以检查其中是否有某些原因导致验证无法触发):
The Javascript (works fine, just put it here so you can check if something in this is causing the validation not to fire):
//Events
window.Events = (function () {
// Baseline setup
var Events = {};
function disableAllChildren(el) {
$(el).find(':input').attr('disabled', true);
}
function enableAllChildren(el) {
$(el).find(':input').attr('disabled', false);
}
//Ajax submit
Events.Submit = function (el, event) {
event.preventDefault();
//serialize the form before disabling the elements.
var data = $(el).serialize();
disableAllChildren(el);
$(el).find('.success, .error').hide();
$.ajax({
url: el.action,
type: 'POST',
data: data,
success: function (data) {
//Stuff happens.
}
});
};
return Events;
})(this, this.document);
我如何取回验证?
推荐答案
我要做的是在提交表单之前检查表单是否有效.参见下面的代码:
What I do is to check if the form is valid before I submit it. See the below code :
$form = $("#myForm");
if (form.valid()) {
form.validate();
//other codes here
}
如果表格有效,则发布您的数据.如果没有,则什么也不做.
If the form is valid, then post your data. If not, do nothing.
这篇关于实现onSubmit事件后,jQuery非侵入式验证丢失的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文