2012-08-01 180 views
2

嗨我正在開發一個系統,我想讓系統更易於使用。 我在頁面上有幾個表單,每個表格都有很大的表格。我不擅長JS,所以不勝感激。 提前10倍!用鼠標middleclick按鈕提交表單

+0

我很好奇。誰最近使用三鍵鼠標? – asprin 2012-08-01 07:53:56

+2

@asprin任何人都有桌面。大多數外部鼠標仍然有一個滾輪。 – 2012-08-01 07:55:06

+0

@PhpMyCoder的確如此,但我認爲大多數人只會將它用於滾動目的。我懷疑他們甚至知道它是可點擊的 – asprin 2012-08-01 07:56:22

回答

7

使用點擊事件監聽器:

document.body.addEventListener('click', function(e){ 
    if (e.button == 1){ 
     document.formname.submit(); 
    } 
}); 

編輯

根據新的jQuery的標籤,這是稍快:

$('body').click(function(e){ 
    if((!$.browser.msie && e.button == 1) || ($.browser.msie && e.button == 4)){ 
    // IE exception thanks to @Elias Van Ootegem 
    $('form.myForm').submit(); 
    } 
}); 
+0

+1不使用jQuery不應該。 – PeeHaa 2012-08-01 08:08:07

+1

睏倦:不同的瀏覽器,不同的編號(http://www.quirksmode.org/js/events_properties.html):IE認爲鼠標中鍵應按鈕#4 1被稱爲用於使用純JS缺少jQuery標記 – 2012-08-01 08:14:33

+0

爲什麼你不應該使用jQuery,我從來沒有遇到任何問題? – LmC 2012-08-01 08:14:37

1

Triggering onclick event using middle click

以上鍊接將有所幫助。

$("#foo").live('click', function(e) { 
    if(e.which == 2) { 
     e.preventDefault(); 
     alert("middle button"); 
    } 
}); 

的jQuery的第一行允許它當前行頁面上工作, 「點擊」它告訴它有什麼樣的事件偵聽,而當事件被稱爲它調用的函數定義參數e,

,因爲它是中間點擊你正在尋找做一個if語句,看看已被按下了什麼,你的情況,你想這等於2.

現在因爲可能有一些默認操作爲此鍵設置,請執行e.preventDefault(),以便您能夠使用自己的代碼。

鋁堅韌我會建議使用輸入鍵提交表單,因爲這是每天這樣做的方式。

我會推薦閱讀這個:http://unixpapa.com/js/mouse.html

+0

- 1爲使用一個庫,它不要求在OP和使用[舊](http://stackoverflow.com/questions/5772018/jquery-add-event-handler/5772031#5772031),[ *非常*慢](http:// jsperf。com/jquery-live-vs-delegate-vs-on)和[deprecated](http://api.jquery.com/live/)'.live()'函數。 – PeeHaa 2012-08-01 08:16:28

+0

因爲OP爲了使用舊的'.live()'函數改變標籤-1 :-),你能否從你的答案中移除'.live()'函數並用'.on()'更新它我可以恢復我的downvote? – PeeHaa 2012-08-01 08:18:21

+0

好的,也用鏈接中的JS替代,解釋和兼容性信息更新 – LmC 2012-08-01 08:19:37