[英]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.