30

.netページにいくつかのテキストボックスがあり、jQueryで次のことを実現したいと考えています。ユーザーがreturnキーを押すと、プログラムは「あたかも」タブキーを使用したかのように動作し、次の要素を選択する必要があります。私は次のコード(およびそれ以上)を試しました:

<script type="text/javascript">

jQuery(document).ready(function () {

    $('.tb').keypress(function (e) {
        if (e.keyCode == 13)
        {
            $(this).trigger("keydown", [9]);
            alert("return pressed");
        } 
    });
});

<asp:TextBox ID="TextBox1" runat="server" CssClass="tb"></asp:TextBox>
<asp:TextBox ID="TextBox2" runat="server" CssClass="tb"></asp:TextBox>

しかし、それはうまくいきません!何かが足りない、間違える?

ここで私が使用したいくつかのリンク

ここ

そしてここ

4

4 に答える 4

19

これを試して:

http://jsbin.com/ofexat

$('.tg').bind('keypress', function(event) {
  if(event.which === 13) {
    $(this).next().focus();
  }
});

またはループバージョン: http: //jsbin.com/ofexat/2

于 2012-02-09T16:03:44.137 に答える
12

この問題を解決する簡単なjQueryプラグインを作成しました。jQuery UIの「:tabbable」セレクターを使用して、次の「tabbable」要素を見つけて選択します。

使用例:

// Simulate tab key when enter is pressed           
$('.tb').bind('keypress', function(event){
    if(event.which === 13){
        if(event.shiftKey){
            $.tabPrev();
        }
        else{
            $.tabNext();
        }
        return false;
    }
});
于 2013-09-11T12:06:24.597 に答える
11

複数の回答から、Enterが入力のタブとして機能し、次の入力、select、またはtextareaに焦点を合わせ、テキスト領域内に入力できるという完璧なソリューションを組み合わせました。

 $("input,select").bind("keydown", function (e) {
     var keyCode = e.keyCode || e.which;
     if(keyCode === 13) {
         e.preventDefault();
         $('input, select, textarea')
         [$('input,select,textarea').index(this)+1].focus();
     }
 });
于 2014-12-31T11:18:54.387 に答える
4

これを試して

$(this).trigger({
    type: 'keypress',
    which: 9
});
于 2012-02-09T15:58:53.607 に答える