jQuery手风琴 - 为活动手风琴设置输入焦点?

时间:2010-03-08 01:51:42

标签: jquery input focus accordion

**没关系。我想到了。 **

我是这样做的:

$("#accordion").accordion({
        header:'h3',
        active: '#section1',
        autoheight: false,
        clearstyle: true,
}).bind("change.ui-accordion", function(event,ui) {
    $("#text1").focus();
});

我手风琴都设置好了,每个div都有一个表格。我只想弄清楚如何将焦点设置在输入字段上,具体取决于哪一个打开...

/* accordion */
$("#accordion").accordion({
        header:'h3',
        active: '#section1',
        autoheight: false,
        clearstyle: true
});

基本上,我想将光标设置在第一个输入字段中,无论哪个部分打开。实际的形式要大得多,所以我非常强调......

    <div id="accordion">
        <h3 id="section1"><a href="#">Section 1/a></h3>
        <div>
            <form id="form1" action="form.php" method="post">
                <fieldset class="inside">
                    <input type="text" name="text1" id="text1" size="50" value="Default text" />
                    <input class="open" type="button" value="Submit" name="submit1" />
                </fieldset>
            </form>
        </div><!--/div-->

        <h3 id="section2"><a href="#">Section 2</a></h3>
        <div>
            <form id="form2" action="form.php" method="post">
                <fieldset class="inside">
                    <input type="text" name="text2" id="text2" size="50" value="Submit" />
                    <input class="open" type="button" value="Submit" name="submit2" />
                </fieldset>
            </form>
        </div><!--/div-->

        <h3 id="section3"><a href="#">Section 3</a></h3>
        <div>
            <form id="form3" action="form.php" method="post">
                <fieldset class="inside">
                    <input type="text" name="text3" id="text3" size="50" value="Submit" />
                    <input class="open" type="button" value="Submit" name="submit3" />
                </fieldset>
            </form>
        </div><!--/div-->

2 个答案:

答案 0 :(得分:0)

最好使用内置于此类事件中的手风琴

    $(".accordion").accordion({
        beforeActivate: function()  {},
        activate: function( event, ui ) {
            $(ui.newPanel).find('input')[0].focus()
         }
    });

姜是最好的

答案 1 :(得分:0)

如果只需要集中一个输入,则上面提到的两种方法(.bind("change.ui-accordion"...activate: function( event, ui ) {...)就可以工作。我有3个文本输入,用户需要单击它们。为了解决这个问题,我用了:

    $(":input").click(function() {
      $(this).focus();
    });

当然,“:input”可以更改为所需的任何内容。