如何确定在手风琴中单击按钮的索引

时间:2011-05-02 03:52:01

标签: jquery jquery-ui-accordion multipartform-data

我正在使用带有多部分表单的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>

2 个答案:

答案 0 :(得分:1)

错误是按钮的实际类别为"edit",而不是"editButton"。所以你必须在html中更改它,或者将你的javascript更改为:

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 );
}

答案 1 :(得分:0)

手风琴中的选定部分提供活动课程。您找到具有活动类

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