为特定表单

时间:2018-04-05 08:28:29

标签: javascript jquery forms submit partial-views

我正在开发一个包含4个nav-tabs的Web应用程序。

名为 index.cshtml 的主要cshtml文件包含4个nav-tabs作为部分视图:

<div class="tab-content" id="mainTab" >
        <div class="tab-pane fade in active" id="@ViewData["Stamp"]" role="tabpanel" aria-labelledby="stempel-tab">
          @{ViewBag.Title = "Index";}
          @{Html.RenderAction("_Stempel", "Home");}
        </div>
        <div class="tab-pane fade" id="@ViewData["BackDated"]" role="tabpanel" aria-labelledby="backdated-tab">
          @{ViewBag.Title = "Index";}
           @{Html.RenderAction("_BackDated", "Home");}
        </div>
        <div class="tab-pane fade" id="@ViewData["History"]" role="tabpanel" aria-labelledby="historie-tab">
           @{ViewBag.Title = "Index";}
           @{Html.RenderAction("_Historie", "Home");}
        </div>
        <div class="tab-pane fade" id="@ViewData["ChangePin"]" role="tabpanel" aria-labelledby="changepin-tab">
           @{ViewBag.Title = "Index";}
           @{Html.RenderAction("_Pinaendern", "Home");}          
        </div>
    </div>  

每个标签都有一个表单,我必须在其中提交信息。我使用Html.BeginForm来定义Form:

@using(Html.BeginForm(“SavePost”,“Home”,FormMethod.Post))

要执行表单,我使用一个按钮(每个标签有一个不同的按钮):

<div class="stempel_button" id="my_centered_buttons">                              
   <button id="stempel" value="stempel" type="submit" style="width:200px"class="btn btn-primary" >@ViewData["Button_Booking"]</button>                    
</div>

按下按钮时,会调用SavePost函数:

    $(document).ready(function () {     


            //Executed when pressed send/book
            $('#stempel').click(function () {

                alert("hello click stempel");

                $("form[action$='SavePost']").submit(function () {

                //Some Action
            }
     }
}

函数SavePost在HomeController.cs中定义:

[AcceptVerbs(HttpVerbs.Post)]       
        public String SavePost()
        { 
          // Some code
        }

当我在一个标签中点击提交按钮时,它会在所有其他标签中执行此行:

$("form[action$='SavePost']").submit(function () {

        //Some Action
  }

是否可以为每个表单定义一个ID并使用ID调用submit函数,因此它只执行特定的表单?

像这样:

@using (Html.BeginForm("SavePost", "Home", FormMethod.Post, new { id = "stempelform" }))

感谢您的回答......

1 个答案:

答案 0 :(得分:0)

使用$(“form [action $ ='SavePost']”)。eq(0).submit();对于每个表单都有效。

如果你使用像这样的按钮条件:

$("#buttonid").click(function () {
}

每次点击按钮都会添加提交。我只是删除了条件并且它有效。

谢谢!