2012-08-01 192 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