0

リターンキーをタブキーとして機能させようとしていますが、テーブルでは機能しません。これがフィドルです。

テーブルを取り外して使用すると、何が原因で機能しなくなるのかわかりません<br />。また、jQuery計算機能と連携します。それが問題を引き起こしていると思ったが、そうではなかった。jQueryに、ライブラリの方が適していることを実行するように依頼しているかどうかはわかりません。

HTML

<table border="1">
    <tr>
        <td id="larger">field 1</td>
        <td>
            <input type="text" id="sum1" name="sum1" class="sum" size="15" border="0"
            />
        </td>
        <td>
            <input type="text" id="sum2" name="sum2" class="ttw" size="15" />
        </td>
        <td>
            <input name="cash" type="text" class="cash" id="cash1" value="" size="15"
            />
        </td>
    </tr>
</table>

jQuery

$('table:input').keydown(function (event) {
    if (event.which == 13) {
        if (!$(this).hasClass("last")) {
            event.preventDefault();
            $(this).nextAll('input:first').focus();
        } else {
            $("form").submit();
        }
    }
});
$(function () {
    $('input[name^=sum]').keyup(function () {
        var sum1 = parseFloat($('input[name=sum1]').val(), 2) || 0; // Or parseInt if integers only
        var sum2 = parseFloat($('input[name=sum2]').val(), 2) || 0;
        $('#cash1').val(sum1 + sum2);
    });
});
$(function () {
    $('input#cash1').blur(function () {
        var amt = parseFloat(this.value, 2) || 0;
        $(this).val('' + amt.toFixed(2));
    });
});
4

3 に答える 3

1

http://jsfiddle.net/Beyq7/6/のようなことができます

$(this).parent().next().children('input:first').focus();

于 2013-02-06T23:17:08.870 に答える
0

次の入力を見つけるためのセレクターが間違っています...次のhttp://jsfiddle.net/Beyq7/4/を試してください

 $(this).parent().next().find('input').focus();

また、キーダウン イベントをバインドする場合、入力を正しくターゲットにしていません。次を使用します。

$('table input')
于 2013-02-06T23:13:24.250 に答える
0

これが私の解決策です。最後の入力にクラスが含まれるようにマークアップを更新lastし、キーダウンのセレクターを に変更する必要がありますtd input。次に、次の入力を取得するセレクターは次のようになります$(this).parent().next().find('input').focus();

それはうまくいくはずです。

JS フィドルhttp://jsfiddle.net/bFRnf/

于 2013-02-06T23:24:59.730 に答える