【问题标题】:MVC 5 Client side validation for ajax posts with click event not working?MVC 5客户端验证带有点击事件的ajax帖子不起作用?
【发布时间】:2015-08-20 08:04:28
【问题描述】:

我必须使用 ajax 帖子的单击事件来实现客户端验证。我按照以下网址:

Call MVC 3 Client Side Validation Manually for ajax posts

我试过用这个:

$('#buttonId').click(function(evt) {
    evt.preventDefault();
    var $form = $('form');
    if($form.valid()) {
        //Ajax call here
    }
});

但这里的问题是,如果存在无效数据,验证是否有效。但是,如果我也提供正确的输入,页面正在重新加载,结果是空白页面。

我尝试将 evt.preventDefault() 替换为 return false。但是那里的验证不起作用。谁能帮我解决这个问题。

问题是如果没有选择下拉菜单,验证消息就会到来。但是如果我输入正确,则不会显示输出。页面正在刷新。

我猜问题是 evt.preventDefault() 。但是没有这个验证是行不通的

【问题讨论】:

  • 只是想知道;这个buttonId,是一个普通的HTML按钮还是一个输入类型submit元素?如果它是提交类型,那么是的,您的表单将以 HTML 表单方式提交,因此重新加载页面
  • return false; 必须是脚本的最后一行
  • 尽可能显示你的ajax调用!
  • preventDefault 应该在 else 部分吧?
  • @vijay,是的,它是一个输入类型提交

标签: javascript jquery ajax validation asp.net-mvc-5


【解决方案1】:

不要使用点击按钮,我建议使用以下。如果表单有效,则 'submitHanderl 是一个回调函数。

$("form").validate({
    submitHandler: function(form) {
        //Ajax call here
    }
});

【讨论】:

    【解决方案2】:

    另外,为了以后参考,如果你添加type="button",它将把按钮当作按钮,它不会提交点击。与执行event.preventDefault()<a> 标签的return false; 相同

    【讨论】:

      猜你喜欢
      • 2011-07-04
      • 2011-11-06
      • 2013-01-09
      • 2014-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多