使用jQueryvalidation的ASP.Net MVC Ajax表单
我有一个MVC视图,其中包含使用Ajax.BeginForm()辅助方法构建的表单,我正在尝试使用jQuery Validation插件validation用户输入。 我得到插件以突出显示无效输入数据的输入,但尽管输入无效,表单也会发布到服务器。
如何停止此操作,并确保仅在表单validation时发布数据?
我的代码
表格:
JavaScriptvalidation:
$(document).ready(function() { // for highlight var elements = $("input[type!='submit'], textarea, select"); elements.focus(function() { $(this).parents('p').addClass('highlight'); }); elements.blur(function() { $(this).parents('p').removeClass('highlight'); }); // for validation $("form").validate(); });
编辑:由于我在回答中发布后续问题及其解决方案,这也是工作validation方法……
function ajaxValidate() { return $('form').validate({ rules: { "Post.Header": { required: true }, "Post.Post": { required: true, minlength: 3 } }, messages: { "Post.Header": "Please enter a header", "Post.Post": { required: "Please enter a message", minlength: "Your message must be 3 characters long" } } }).form(); }
尝试将一个OnBegin回调添加到AjaxOptions并从回调中返回$(’form’)。validate()。form()的值。 看看来源 ,看来这应该有效。
function ajaxValidate() { return $('form').validate().form(); } <% using (Ajax.BeginForm("Post", new AjaxOptions { UpdateTargetId = "GBPostList", InsertionMode = InsertionMode.InsertBefore, OnBegin = "ajaxValidate", OnSuccess = "getGbPostSuccess", OnFailure = "showFaliure" })) { %>
使用正确的回调名称更新EDIT 。
- XMLHttpRequest无法加载,没有’Access-Control-Allow-Origin’标头(无法读取JavaScript / jQuery中的Ajax响应)
- Laravel 5:Ajax Post 500(内部服务器错误)
- 升级javascript,添加一个字段的链接
- cffile替代方案,我需要上传没有表单提交
- 当Spring框架从3.0.2升级到3.2.0时,Spring JSON会导致问题
- Javascript AJAX Click事件有时在Android本机浏览器中不起作用
- 用ajax重新加载php代码
- 如何在页面卸载时执行ajax调用?
- jQuery ajax responseText’undefined’