禁用右键单击自动完成Jquery

时间:2015-09-15 02:01:29

标签: javascript jquery web autocomplete frontend

我在JQuery中使用自动完成功能。右键单击时,它会在自动完成中显示与左键单击相同的数据。如何禁用右键单击它?我的意思是当我右键单击它时,它什么也没做。

4 个答案:

答案 0 :(得分:0)

可能最可靠的是为元素而不是烦人的人点击事物:)

    <div oncontextmenu="return false">

    </div>

但话虽如此,如果您使用的是jQuery ui自动完成功能,右键单击实际上不会触发右键单击,因此您可以查看它!

答案 1 :(得分:0)

我不确定我理解你的问题。但也许是这样 -

<input id="myInput" onclick="maybeStopAutocomplete()" onblur="enableAutocomplete()"/>

js -

function maybeStopAutocomplete(evt) {
  if(evt.which === 3) {
    myInput.setAttribute("autocomplete", "false");
  }
}

function enableAutocomplete() {
  myInput.setAttribute("autocomplete", "true");
}

呀?

答案 2 :(得分:0)

因此,使用jqueryui docs for autocompleteanother question from SO,您获得的this fiddle似乎甚至无法记录右键点击或中间点击。所以......是吗?

Le html:

<input id='box' type='text'>

javascript:

$(function() {
    var $input = $('#box');
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "PHP",
      "Python",
      "Ruby",
      "Scala",
      "Scheme"
    ];
    $input.autocomplete({
      source: availableTags
      ,select: function(event, ui) {
         var origin = event.originalEvent.originalEvent;
          return false;
          if(origin.type == 'click') {
            switch(origin.which) {
                case 1: // left. here for show
                    break;
                case 2: // middle
                case 3: // right
                    return false;
                    break;
            }
          }
      }
    });
});

包括jquery 1.10.2和jqueryui 1.10.2以使小提琴上班

答案 3 :(得分:0)

也许这就是你想要的。试试这个

<script language="javascript">
document.onmousedown=disableclick;
status="Right Click Disabled";
Function disableclick(e)
{
  if(event.button==2)
   {
     alert(status);
     return false;  
   }
}
</script>

但是在此解决方案中,如果单击右键单击它将显示该消息 “右键单击禁用”。

如果我们要删除messegebox,则此解决方案无效。

我有另一个简单的解决方案来实现相同的结果,也没有显示messegebox。

在这个方法中,我们在页面的正文部分设置oncontextmenu =“return false” 所以身体部位看起来像

<body oncontextmenu="return false">
...
</body>

因此,每当用户点击鼠标右键时,就不会发生任何事情,也没有消息没有上下文菜单。

有时可能需要禁用对特定控件的右键单击以实现此操作,我们必须遵循这些步骤。 1.删​​除正文中添加的代码(即oncontextmenu =“return false”) 2.添加一个表,并在其行中添加控件,例如数据网格控件 3.将oncontextmenu =“return false”放入该控件

所以代码看起来像这样

<Body>
  <Table>
   <tr oncontextmenu="return false">
    <td>
     <asp:datagrid id="dgGrid1">---</asp:datagrid>

因此,通过此方法,可以禁用右键单击右键单击上下文菜单。

我希望它有所帮助。