首页 > 解决方案 > 使用 JavaScript 验证时,按钮未在 MVC 表单上触发

问题描述

我在 MVC 应用程序上有 2 个表单。第一种形式是工作查找(验证和按钮触发)。验证的第二种形式有效,但输入按钮未触发。当我删除 JavaScript 时,一切正常 知道我哪里出错了。我下面的示例代码查看

表格 1

  @using (Html.BeginForm("Index", "Corporate", FormMethod.Post, new { enctype 
     = "multipart/form-data" , id= QuickMEssage}))
 {
    @Html.AntiForgeryToken()

  <div class="form-group">
   @Html.Label("Message Body", new { @class = "control-label col-md-2  required" })
  <div class="col-md-8">
    <textarea rows="6" cols="50" name="MessageBody" class="required" id="MessageBody" placeholder="Message Body Not more than 148 characters"></textarea>                                
  </div>
 </div>
   <input type="submit" value="Send Message" class="btn btn-success" name="quicksend" />
 }

表格 2

@using (Html.BeginForm("BulkMessage", "Corporate", FormMethod.Post, new { 
 enctype = "multipart/form-data" , id= "BulkMessage" }))
 {
   @Html.AntiForgeryToken()
 <div class="form-group">
   @Html.Label("Message Body", new { @class = "control-label col-md-2  required" })
  <div class="col-md-8">
    <textarea rows="6" cols="50" name="MessageBody" class="required" id="MessageBody" placeholder="Message Body Not more than 148 characters"></textarea>                                
  </div>
 </div>

  <input type="submit" value="Shedule Message" class="btn btn-success" />
  }

控制器

// Controller for the first form
 [HttpPost]
 [ValidateAntiForgeryToken]
  public async Task<ActionResult> Index(string[] mobilenumber, int 
 ddlshedule, string date, int? sendmessage, string MessageBody)
  {
    return View();
  }

  // Controller for the second form. Validation is working fine

 [HttpPost]
 [ValidateAntiForgeryToken]
  public async Task<ActionResult> BulkMessage(int ddlshedule, string date, 
  string MessageBody2, HttpPostedFileBase attachmentcsv)
  {
    // This part of the code is not firing
    Return View();
  }

JavaScript

@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Styles.Render("~/bundles/datatablecss")
@Scripts.Render("~/bundles/table")
  JavaScript for form 1
<script>

$(document).ready(function () {
$("#QuickMEssage").validate();    
 });

   JavaScript for form 2
<script>
      $(document).ready(function () {
          $("#BulkMessage").validate();
      });

    </script>
  }

标签: javascriptasp.net-mvc

解决方案


推荐阅读