2

解決できないような問題があります。

カスタムスタイルのボタン(input type = button)のあるフォームがあります。テキストフィールドに入力するときは、Tabキーを押してボタンに移動できるようにしたいと思います。ただし、タブインデックスは使用されないため、私の解決策は、ラベルを強調表示し、CSSを変更してボタンに新しい境界線の色を付けることでした。ただし、Firefox以外のブラウザでキーを押しても境界線の色は変わりません。

これが私が持っているものです:

$(function() {
    $("#email").bind("keypress", function(e) {
            if (e.keyCode == 13) {
                send();
                return false; 

            };

            if (e.keyCode == 9) {
                    $("#submit_btn").removeClass('submit1').addClass('submit1after');
            };

      });
};

最初にEnterキーを押すと、フォームとすべてをシリアル化して電子メールで送信します。

私はそれを私の人生のために働かせることができないようです。私は何が間違っているのですか?私が達成しようとしていることに対するより良い解決策はありますか?

お時間を割いていただきありがとうございます、

Armik

4

3 に答える 3

3

keydown代わりに、動作する私のために使用してください(デモを参照してください:http : //jsfiddle.net/npGtX/2/

$(function () {
  $("#email").bind("keydown", function (e) {
    if (e.keyCode == 13) {
      send();
      return false;    
    };

    if (e.keyCode == 9) {
      $("#submit_btn").removeClass('submit1').addClass('submit1after');
    };
  });
};

また、私はこれを見つけました:文字以外のキーのkeyPressを抑制しますか?

キープレスが文字でない場合、キープレスは必ずしもトリガーされません。そのため、ブラウザはバックスペース、F1、下キーなどでイベントをトリガーしない場合があります。

于 2012-08-22T05:31:15.060 に答える
1

keyupイベントとeventオブジェクトのプロパティを使用できますwhich。jQueryはwhichプロパティを正規化し、クロスブラウザです。

$(function() {
    $("#email").bind("keyup", function(e) {
         if (e.which == 13) {
            send();
            return false; 
         };   
         if (e.which == 9) {
            $("#submit_btn").toggleClass('submit1 submit1after');
         };
    });
};
于 2012-08-22T05:46:38.907 に答える
0
 $(function() {
$("#email").keypress(function(e) {
        if (e.keyCode == 13 || e.which== 13) {
            send();
            return false; 

        };

        if (e.keyCode == 9 || e.which== 9) {
                $("#submit_btn").removeClass('submit1').addClass('submit1after');
        };

  });
 };
于 2012-08-22T05:36:19.730 に答える