我使用ASP.NET MVC 3 unobstrusive阿賈克斯,我想,以防止進入提交表單。我寫了下面的代碼來做到這一點Ajax.BeginForm +防止提交進入
$(window).keypress(function (event) {
if (event.which == 13) {
event.preventDefault();
}
});
不幸的是,這個事件沒有在IE8上觸發。有沒有其他的選擇。 (我使用jQuery 1.6.4)
我使用ASP.NET MVC 3 unobstrusive阿賈克斯,我想,以防止進入提交表單。我寫了下面的代碼來做到這一點Ajax.BeginForm +防止提交進入
$(window).keypress(function (event) {
if (event.which == 13) {
event.preventDefault();
}
});
不幸的是,這個事件沒有在IE8上觸發。有沒有其他的選擇。 (我使用jQuery 1.6.4)
你應該在DOM
焦點設置下一個元素$(window).keypress(function (event) {
if (event.which == 13) {
$(this).next().focus();
}
});
檢查下一個元素類型,如果類型不是一個textarea(進入許可),或按鈕/提交(輸入=點擊),然後我們只是選擇下一件事。
例如,
if (e.which == 13) {
var $targ = $(e.target);
if (!$targ.is("textarea") && !$targ.is(":button,:submit")) {
var focusNext = false;
$(this).find(":input:visible:not([disabled],[readonly]), a").each(function(){
if (this === e.target) {
focusNext = true;
}
else if (focusNext){
$(this).focus();
return false;
}
});
return false;
}
}
編輯:哦,只是重讀你的問題 - 在IE中,你可能想要的目標$(window).keydown(function(event)
代替按鍵
我想在IE中,你必須看event.keyCode屬性
$(window).keypress(function (event) {
if(event && event.which){ //if which property of event object is supported (NN4)
characterCode = event.which //character code is contained in NN4's which property
}
else{
characterCode = event.keyCode //character code is contained in IE's keyCode property
}
if (characterCode == 13){
event.preventDefault();
}
檢查this確保您按鍵或關鍵甚至會在您的瀏覽器中找到。如果您不希望該事件返回任何東西,後來乾脆return false;
的主要問題是,這個事件是不是在IE8觸發。在IE9中,它工作正常。 –
嘗試e.keyCode代替e.which在IE中。你也想在IE中使用keydown()而不是keypress()。看看這個http://unixpapa.com/js/key.html – Priyank
@Priyank - 很好的附加評論:P – Tommy