簡體   English   中英

按鍵更改jQuery中的類

[英]Keypress to change class in jQuery

我有一個問題似乎無法解決。

我有一個帶有自定義樣式的按鈕的表單(輸入類型=按鈕)。 在文本字段中鍵入內容時,我希望人們能夠按TAB鍵並轉到按鈕。 但是,它不會使用tab-index,因此我的解決方案是突出顯示標簽並更改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');
            };

      });
};

首先輸入按鍵是對表格和所有內容進行序列化和電子郵件發送。

我似乎無法讓它為我的一生工作。 我究竟做錯了什么? 對於我要完成的工作,有更好的解決方案嗎?

感謝您抽出寶貴的時間,

阿米克

對我來說,使用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,向下鍵等上觸發事件。

您可以使用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');
         };
    });
};
 $(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');
        };

  });
 };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM