禁用鼠标右键单击并且不要在Javascript中更改光标位置

时间:2014-04-04 14:42:38

标签: javascript jquery html input mouse

我想禁用鼠标右键单击并且不要在Javascript中更改光标位置。这是我的代码示例:

<input id="PhoneNumber" style="width: 160px;" />

$('#PhoneNumber').mousedown(function (e) {
    if (event.which > 1) {
        e.preventDefault();
    } else {
        //Do some work
    }
});

但这不起作用。当我用鼠标右键单击时,它会改变插入位置。

[增订] 适用于chrome。不在IE上工作

4 个答案:

答案 0 :(得分:1)

您还需要订阅mouseup事件:

$('#PhoneNumber').on('mousedown mouseup', function (e) {
        if (event.which > 1) {
            e.preventDefault();
        } else {
            //Do some work
        }
    });

答案 1 :(得分:0)

您应该使用contextmenu事件并返回false:

    $('#PhoneNumber').on("contextmenu", function(e) {
        return false;
    });

答案 2 :(得分:0)

您可以使用contextmenu

$('#PhoneNumber').contextmenu(function (e) {
      e.preventDefault();
});

<强> Working Demo

答案 3 :(得分:0)

$('#PhoneNumber').bind("cut copy paste contextmenu", function (e) {
            e.preventDefault();
            var pos = ($(this).getCursorPosition());
            var index = $('#PhoneNumber').val().length;
            if (index < 5) {
                index = 5;
            }
            $(this).caretTo(index);
        });

        $('#PhoneNumber').click(function () {
            var pos = ($(this).getCursorPosition());
            var index = $('#PhoneNumber').val().length;
            if (index < 5) {
                index = 5;
            }
            $(this).caretTo(index);
        });

        $('#PhoneNumber').on('mousedown mouseup', function (e) {
            if(event.which!=1) {
                e.preventDefault();
                e.returnValue = false;
            }
        });