在活动的Tab ASPX视图中提交表单

时间:2014-06-02 14:07:46

标签: javascript jquery asp.net .net asp.net-mvc-4

我的表单存在问题,其中包含一个标签,每个标签都包含一个表单输入,问题是当我点击“提交”时,它会发布其他非活动标签中的值。

ASPX页面中的代码HTML:

<section class="content-wrapper main-content clear-fix">
       <form id="form1" method="post" runat="server">
           <input id="Submit" type="submit" onclick="noPostBack('AfficherRapport.aspx')" name="Filtrer" value="Filtrer"/> 
           <asp:HiddenField ID="position" Value='$("ul.tabs li.active").index()' runat="server"/>
           <nav>
              <ul runat="server" id="myTab" class="tabs">
                      <li class="active">
                           <a href="#tab1">enseign_site</a>
                      </li>
                      <li class="">
                           <a href="#tab2">iwaHadaMakan</a>
                      </li>     
              </ul>
           </nav>

           <!-- Tab panels -->
           <div runat="server" id="myRapports" class="tabContainer">
               <div id="tab1" class="tabContent" style="display: block;">
                   <input type="text" name="STAMP1" placeholder="STAMP1"/>
               </div>
               <div id="tab2" class="tabContent" style="display: none;">
                   <input type="text" name="STAMP1" placeholder="STAMP1"/>
               </div>
           </div>

       </form>
   </section>

代码选项卡Jquery:

   $(document).ready(function () {
   //hiding tab content except first one
   $(".tabContent").not(":first").hide();
   // adding Active class to first selected tab and show
   $("ul.tabs li:first").addClass("active").show();

   // Click event on tab
   $("ul.tabs li").click(function () {
           // Removing class of Active tab
           $("ul.tabs li.active").removeClass("active");
           // Adding Active class to Clicked tab
           $(this).addClass("active");
           // hiding all the tab contents
           $(".tabContent").hide();
           // showing the clicked tab's content using fading effect
           $($('a', this).attr("href")).fadeIn('slow');

           return false;
       });
   });

** /!**:如果你需要一些额外的信息,那么在视图的类behid中完成标签,你只需要它。 非常感谢

3 个答案:

答案 0 :(得分:0)

因为你所有的&#34;标签&#34;属于同一个form元素。提交form后,其中的所有表单元素都会包含在提交中。请注意,您只有一个form元素:

<form id="form1" method="post" runat="server">
    <!-- other markup -->
    <!-- Tab panels -->
    <div runat="server" id="myRapports" class="tabContainer">
        <div id="tab1" class="tabContent" style="display: block;">
            <input type="text" name="STAMP1" placeholder="STAMP1"/>
        </div>
        <div id="tab2" class="tabContent" style="display: none;">
            <input type="text" name="STAMP1" placeholder="STAMP1"/>
        </div>
    </div>
</form>

如果您需要单独的表单帖子,则需要单独的form标记。 (在每种情况下可能只有一个&#34; tab&#34;在这种情况下。)每个都有自己的表单元素。否则,使用单个form标记,您需要在服务器端代码中识别哪些元素相关且哪些元素不相关。

答案 1 :(得分:0)

我假设你使用ASP.NET Web Forms。

要将每个标签分开以执行自己的帖子,您需要多个<form>标记。

从ASP.NET Web窗体的性质来看,只有一个<form>标记。所以你要问的只能用AJAX请求来完成。

在此处阅读更多内容:Can we use multiple forms in a web page?

答案 2 :(得分:0)

这对每个人都很敏感。 所有这三个答案都是正确的,只是为了强调在单个页面中我们可以使用runat =&#34; server&#34;我们想要。 谢谢你们所有人。