【问题标题】:keyCode or detection for selection in textbox文本框中选择的 keyCode 或检测
【发布时间】:2013-09-30 10:30:47
【问题描述】:

如何检测用户是否选择了<input> 框中的文本?

$('input[name=inputname]').keyup(function(e)
{
   if((e.keyCode!=37)&&(e.keyCode!=38)&&(e.keyCode!=39)&&(e.keyCode!=40)) // Check whether the user is navigating inside the box by pressing the arrows
   {
        call_the_function();
   }
});

现在,当用户使用 Shift + 左箭头或 Shift + 右箭头选择他/她键入的文本时,keyUp() 函数将执行。我怎样才能防止这种情况发生?

【问题讨论】:

  • 不需要把AND的“&&”改成O​​R的“||”吗?
  • 用鼠标选择呢?无论如何,这是一个徒劳的问题,因为如果我非常需要它,我可以从网站源中复制任何值。
  • @RoryMcCrossan:我不需要阻止复制文本。我的问题是当用户按下 Shift 键和导航键时,keyUp() 事件被触发。我需要防止这种情况。怎么可能?

标签: jquery keycode keyup


【解决方案1】:

试试这个:

$('input[name=inputname]').keyup(function(e)
{
   if((e.keyCode!=16)&&(e.keyCode!=37)
       ||(e.keyCode!=16)&&(e.keyCode!=38)
       ||(e.keyCode!=16)&&(e.keyCode!=39)
       ||(e.keyCode!=16)&&(e.keyCode!=40)) // Check whether the user is navigating inside the box by pressing the arrows
   {
        call_the_function();
   }
});

这应该检查 SHIFT 键和左、右、上或下箭头。

【讨论】:

    【解决方案2】:

    DEMO

    $('input[name=inputname]').keyup(function (e) {
        if (event.shiftKey && ((e.keyCode >= 37) && (e.keyCode <= 40)))
        {
            return false;
        }else{
            console.log('hi'); //call function when shift+arrow keys not pressed together 
        }
    });
    

    或

    DEMO

    $('input[name=inputname]').keyup(function (e) {
        if (!(event.shiftKey && ((e.keyCode >= 37) && (e.keyCode <= 40)))) {
            console.log('hi');  //call function when shift+arrow keys not pressed together 
        }
    });
    

    【讨论】:

      【解决方案3】:

      使用 jquery select() 怎么样

      http://jsfiddle.net/kasperfish/xWEPh/

      //http://api.jquery.com/select/
      $( "#target" ).select(function() {
      alert( "Handler for .select() called." );
      });
      

      您可以轻松地禁用键盘选择的按键事件。这必须在 keyup 事件处理程序中完成。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-24
        • 1970-01-01
        • 2011-12-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多