0

我想防止用户在焦点输入字段内移动光标。别担心,这只会在他们开始用他们自己的值替换默认值之前!

以下代码成功阻止用户使用箭头键移动光标:

$('.test').focus(function() {
    $(this).bind('keypress', function(event) {
        if (event.keyCode > 36 && event.keyCode < 41) {
            return false;
        } else {
            return true; 
        }      
    });
});

但是类似的代码,例如:

$('.test').focus(function() {
    $(this).bind('click', false);
});

不会阻止点击在输入字段内移动光标。这两种情况有什么区别?

4

3 回答 3

2

keypress是通过键盘完成输入时触发的事件。click是鼠标事件。

于 2012-11-02T19:44:29.703 回答
0

也许这对你有用:

$(".test").focus();
$(".test").bind('keydown', function(event) {
    if (event.keyCode > 36 && event.keyCode < 41) {
        return false;
    } else {
        return true; 
    }      
});
$(".test").bind('mousedown', function(event) {
    return false;
});​

http://jsfiddle.net/zEp36/

这可以防止输入字段上的所有鼠标按下操作。箭头键也被抑制。只需开始输入,您将替换默认值。

于 2012-11-02T20:09:10.413 回答
0

给你,伙计...

$('#noclick').on('mousedown click', function() {
          return false;
});

小提琴

于 2012-11-02T19:49:14.857 回答