3

ajax呼び出しによって作成された後、「a」タグをフォーカスさせようとしています。

コードは次のとおりです。

    <form method="post" id="submitrow">
        <table>
            <tr>
                <td>
                    <input name="quantity" id="id_quantity" />
                </td>
                <td>$
                    <input name="price" id="id_price" />
                </td>
                <td><span id="add_row"></span>

                </td>
            </tr>
        </table>
    </form>

    <script>
    jQuery("#id_quantity").change(function () {
        jQuery('#add_row').html('<a onclick="document.forms[\'submitrow\'].submit();" id="sbmbtn">click me</a>');

        jQuery('#sbmbtn').focus(); // I want to focus the new link, it does not works

        alert(jQuery('#sbmbtn').is(':focus')); // it should be True!

        jQuery('#sbmbtn').live("keyup", function (e) {
            if (e.keyCode == 13) {
                alert('whoot whoot!');
            }
        });
    });

    jQuery("#id_quantity").focus();
    </script>

html の置き換え後、DOM が正しく更新されていないようです。たぶん、コードを別の方法で置き換える必要がありますか?

問題を再現するコードの簡略化されたバージョンでフィドルを作成しました。

提供されたヒントを事前にありがとう!:)

4

1 に答える 1

2

タグにtabindexを設定するだけです

jQuery("#id_quantity").change(function () {
    jQuery('#add_row').html('<a tabindex="11" onclick="document.forms[\'submitrow\'].submit();" id="sbmbtn">click me</a>');

    jQuery('#sbmbtn').focus(); // I want to focus the new link, it does not works

    alert(jQuery('#sbmbtn').is(':focus')); // it should be True!

    jQuery('#sbmbtn').live("keyup", function (e) {
        if (e.keyCode == 13) {
            alert('whoot whoot!');
        }
    });
});

jQuery("#id_quantity").focus();
于 2013-02-01T15:55:33.117 に答える