我想为按键事件提供二合一的解决方案。
如果我按下Enter键,并且网站中没有任何表单元素处于活动状态,我想提醒AAA
。
否则提交活动表格。我怎样才能做到这一点?
$(document).bind('keypress', function(e) {
if(e.keyCode==13){
e.preventDefault();
alert("AAA");
}
}); // the enter key hitted and alerted AAA
但是我如何检查表格的状态呢?这是一个简单的mailsender表单,包含4个字段,3个输入1个textarea。
通过Raj的评论,这是一个很好的解决方案:
jQuery.fn.fadeToggle = function(speed, easing, callback) {
return this.animate({opacity: 'toggle'}, speed, easing, callback);
};
var hotkeys = true;
$(document).bind('keypress', function(e) {
if((e.keyCode==13) &&(hotkeys == true)){
e.preventDefault();
$("#boxforfadein").fadeToggle();
}
});
$("form *").live("focusin", function(){
hotkeys = false;
console.log("hotkeys off");
return hotkeys;
});
$("form *").live("focusout", function(){
hotkeys = true;
console.log("hotkeys on");
return hotkeys;
});
最佳答案
使用focus和focusout跟踪表单是否具有焦点并显示适当的警报。
还有document.activeElement,但我不太确定是否所有浏览器都支持它