Jquery 将单击和按键绑定到输入字段之间的区别

Jquery 将单击和按键绑定到输入字段之间的区别,jquery,Jquery,我想防止用户在聚焦输入字段内移动光标。别担心,这只会在他们开始用自己的值替换默认值之前发生 以下代码成功阻止用户使用箭头键移动光标: $('.test').focus(function() { $(this).bind('keypress', function(event) { if (event.keyCode > 36 && event.keyCode < 41) { return false; }

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

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

$('.test').focus(function() {
    $(this).bind('keypress', function(event) {
        if (event.keyCode > 36 && event.keyCode < 41) {
            return false;
        } else {
            return true; 
        }      
    });
});
不会阻止单击在输入字段内移动光标。
这两种情况之间有什么区别

keypress
是通过键盘输入时触发的事件<代码>点击是一个鼠标事件。

你来了,伙计

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

也许这对你有用:

$(".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;
});​
$(“.test”).focus();
$(“.test”).bind('keydown',函数(事件){
如果(event.keyCode>36&&event.keyCode<41){
返回false;
}否则{
返回true;
}      
});
$(“.test”).bind('mousedown',函数(事件){
返回false;
});​


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

使用
占位符
属性不是更容易吗?是的。那会更容易。我想我会的。谢谢嗯,我刚试过mousedown,这很有效,但单击仍然不起作用。为什么mousedown可以工作而单击not work?@cowabungabill
mousedown
会在按下鼠标按钮时被触发<代码>单击将在释放鼠标按钮时触发
单击
mousedown
mouseup
组合相同。如果需要右键“mousedown click”,请同时使用这两种方法。我没有意识到光标在鼠标向下移动,但考虑到可以选择文本这一事实,这是有意义的。哎呀!再次感谢。
返回false不停止事件默认操作。您需要一个
函数(event){event.preventDefault();}
作为回调函数。请参阅:是,一个
事件.preventDefault()对所选事件禁用正常事件操作。这意味着浏览器不会执行任何操作,除非在
event.preventDefault()之后添加自己的代码
可自行执行鼠标上的任何操作。例如,
$('[href]')。on('mousedown click',function(){event.preventDefault();})禁用当前页面上的所有超链接。有意义!谢谢你,伙计。虽然你可能不想阻止最初的点击,这样你至少可以专注于一个输入?
$(".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;
});​