2011-05-02 60 views
0

我正在使用带多部分窗体的jQuery Accordion UI(带有验证和表单插件)。每个表单都有一个常规的提交按钮和一个编辑按钮。如果该部分完成,编辑按钮将触发提交当前打开的部分,或者如果该部分尚未完成,则关闭该活动部分。然后手风琴将打开编辑按钮被点击的部分。如何确定从哪个索引中点击了手风琴中的按钮

例如,用户填写第1部分,然后单击继续。在填写第2部分时,用户意识到他或她犯了错误,并在第1部分内点击编辑按钮。第2部分关闭,第1部分重新打开进行编辑。我想知道哪个索引包含触发第2部分关闭的编辑按钮(在这种情况下,它是与第一部分关联的索引)。

我不知道如何确定从哪个部分(索引)编辑按钮被点击。当我在submitHandler中使用下面的代码时,我没有得到正确的索引。

var acc = $("#accordion"), 
index = acc.accordion('option','active'), 
index_origin = $(".edit").index(this); 
alert(index_origin); 

有什么建议吗?

我为笨拙的代码提前道歉 - 我是新手。

更新:下面,根据评论的要求,这里是第一部分手风琴的HTML。

<h3 id="section1"><a href="#" class="">Applicant Information</a><button id="edit-applicant-button" class="edit" value="edit" name="edit">Edit Applicant information</button></h3> 
     <div id="applicant-information" class="step"> 
       <form id="applicant-form" class="registration-form" name="applicant-form" method="post" action=""> 
        <fieldset id="clientInfo">     
. . . 
         </div> 
         <div class="step-action"> 
          <p> 
           <span class="next-step"> 
            <button id="submit-first" class="submit" type="submit" value="next" name="next"><em>Next</em></button> 
           </span> 
          </p> 
         </div>< 
        </fieldset>   
       </form> 
     </div> 
+0

你可以发布一些你的HTML标记吗? – 2011-05-02 04:07:00

+0

请再详细解释一下:“编辑按钮会在打开编辑按钮被点击的其他部分之前提交打开部分” – 2011-05-02 05:13:17

+0

我编辑了该帖子以阐明。我希望现在更清楚。 – Ken 2011-05-02 05:24:30

回答

1

的错误是实际的类的按钮是"edit",不"editButton"。所以你必须给JavaScript改变它在HTML或改成这样:

index_origin = $("#accordion .edit").index(this); 

添加#accordion的选择是不是强制性的,但可以让你有一个或多个手风琴。

编辑。随着您提供的额外信息,解决方案将是这样的:

$("#accordion .edit").click(function(){ 
    window.lastButtonClicked = this; //Store clicked button in a global var. 
}); 

... 
submitHandler: function(){ 
    var index_origin = $("#accordion .edit").index(window.lastButtonClicked); 
} 
+0

谢谢。不幸的是,在submitHandler中,我仍然无法从编辑按钮被点击的位置获得索引。我编辑了我的帖子,以避免任何进一步的混淆。 – Ken 2011-05-02 05:28:39

+0

现在你可以。我用一个新的解决方案编辑我的答案 – 2011-05-02 08:05:36

+0

谢谢,这似乎是一个窍门。索引是否低于理想值是有原因的(例如,第一个索引是-1,而不是0)? – Ken 2011-05-02 21:16:18

0

accodion中的选定部分给出活动类。你找到h标签具有活动类

$('#acordion h').hasclass('active').index()