我需要通用功能,可以禁用对表单字段的右键单击。
答案 0 :(得分:2)
document.oncontextmenu = function(e) {
var el = window.event.srcElement || e.target;
var tp = el.tagName || '';
if ( tp.toLowerCase() == 'input' || tp.toLowerCase() == 'select' || tp.toLowerCase() == 'textarea' ){
return false;
}
};
答案 1 :(得分:1)
无论如何都无法做到 - 不可靠和跨浏览器(FF,IE,Chrome,Opera)。
在IE和FF中有特定于浏览器的黑客攻击,但是有一个更深层次的问题:你想要实现什么?限制这样的用户体验不会带来任何好处(他们已经拥有您宝贵的代码,否则他们将看不到页面),并使用户烦恼。
答案 2 :(得分:0)
可能是一个坏主意(因为它违反用户接受的标准行为而使用户烦恼)但你可以在jQuery中这样做:
$(function() {
$(this).bind("contextmenu", function(e) {
e.preventDefault();
});
});
答案 3 :(得分:0)
如果您需要在表单字段中使用特殊的上下文菜单,则可以使用此JQuery插件:
http://www.javascripttoolbox.com/lib/contextmenu/index.php
像这样使用:
var menu1 = [
{
'Option 1': function(menuItem,menu) { alert("You clicked Option 1!"); }
},
{
'Option 2': function(menuItem,menu) { alert("You clicked Option 2!"); }
}
];
$(function() {
$('#myform:input').contextMenu(menu1,{theme:'vista'});
});
因此,当用户点击表单中包含id为'myform'的任何输入字段时,将显示个人上下文菜单。