jQuery Validate:在 ASP.NET MVC 5 应用程序中添加事件以提交按钮单击

Posted

技术标签:

【中文标题】jQuery Validate:在 ASP.NET MVC 5 应用程序中添加事件以提交按钮单击【英文标题】:jQuery Validate: Add events to submit button click in ASP.NET MVC 5 Application 【发布时间】:2018-03-21 22:29:57 【问题描述】:

我正在创建一个 ASP.NET MVC 5 应用程序。该应用程序已经在使用随 MVC 应用程序提供的 jQuery Validate 插件。目前,当点击“提交”按钮时,会触发jQuery Validate,如果有效则表单被验证并提交。

我需要向提交按钮单击添加更多事件,并且我需要确保新事件不会覆盖 jQuery Validate 插件。最初我在没有 jQuery Validate 的情况下尝试了这段代码:

$('#submitButton').click(function()
  // javascript event
 // another JavaScript event
);

但是当我测试这段代码时,它完全覆盖了 jQuery Validate 插件,我的所有前端验证都消失了。我想知道我是否以某种方式将 jQuery Validate 包含在此代码中,它将允许插件和新的提交按钮事件共存。

我想象代码看起来像这样:

$('#submitButton').click(function()
   //Initialize jQuery Validate plug-in
  // JavaScript event that happens if form is valid
 // another JavaScript event that happens if form is valid
);

如何调用已经由 ASP.NET 的 MVC 框架设置的 jQuery Validate?我根本不需要更改插件(除非我的行动计划是错误的);我只需要将事件添加到提交按钮点击。

【问题讨论】:

所以目前 jQuery 验证代码有效,对吗?而您只是想向按钮添加点击事件处理程序?好吧,您所展示的确实是按钮的单击事件处理程序。这在某种程度上不起作用吗?我不太清楚你卡在哪里了。 嗨,David,当我尝试在不初始化 jQuery Validate 插件的情况下创建此 jQuery 代码时,应用程序停止了验证。我认为新代码覆盖了插件。我想知道如果我在上面的代码中调用插件,它会起作用。但是,我不确定该代码会是什么样子。 “初始化 jQuery 验证插件”是什么意思?这不是页面代码中其他地方的“初始化”吗?为什么需要再次初始化?简单地添加一个点击处理程序不会覆盖任何东西。但是,如果您有其他代码以某种方式导致问题,根据提供的信息,我们无法知道。 似乎 jQuery Validate 中必须有另一段代码已经在单击提交按钮时执行了操作。我猜这都是前端验证。当我尝试做一个单独的, $('#submitButton').click(function() // JavaScript 事件 // 另一个 JavaScript 事件 );它完全覆盖了 jQuery Validate 插件,我所有的前端验证都消失了。 不能多次初始化这个插件。在第一次初始化之后,它将忽略任何后续尝试。 【参考方案1】:

太棒了.. 我认为您正在尝试 SUBMIT 使用

创建的表单
@using (Ajax.BeginForm.. or @using (html.BeginForm(..

这两个都包含一个函数OnBegin,它可以调用任何将在表单提交之前触发的函数

   @using (Ajax.BeginForm("SaveInformation_Basic", "..//ARCSL1", null, new AjaxOptions  HttpMethod = "POST", OnSuccess = "done._afterEntry", OnBegin = "return Prevalidateform();" , new  @id = "entryForm" ))


function Prevalidateform() 
   // do your thing here

【讨论】:

【参考方案2】:

你可以在按钮事件中验证它

    $('#submitButton').click(function()
      var $form = $('form');
      if($form.valid())
      // JavaScript event that happens if form is valid
      
      else    // another JavaScript event that happens if form is valid
      
    );

【讨论】:

以上是关于jQuery Validate:在 ASP.NET MVC 5 应用程序中添加事件以提交按钮单击的主要内容,如果未能解决你的问题,请参考以下文章

怎么在asp.net mvc项目的script文件夹添加jquery.validate.min.js和jquery.validate.unobtrusive.min.js

jQuery Validate:在 ASP.NET MVC 5 应用程序中添加事件以提交按钮单击

ASP.NET MVC 应用程序:添加了 jQuery 事件来提交按钮单击,现在 jQuery Validate 插件不再工作。

Asp.net MVC的验证

jQuery validate:如何为正则表达式验证添加规则?

在ASP.NET MVC4中如何执行远程验证?