防止在html5应用程序中剪切复制粘贴



我不想允许用户在文本框中剪切复制粘贴我尝试了以下代码,但它甚至没有绑定到那个元素:

$(document).ready(function(){
$("userName").on("cut copy paste",function(e){
e.preventDefault();
});
});
$(document).ready(function(){
$('#userName').bind("cut copy paste",function(e) {
e.preventDefault();
});
});

如果选择器标识为id,则更改它意味着使用

$(document).ready(function(){
$("#userName").bind("cut copy paste",function(e){
e.preventDefault();
});
});

或者如果是类

$(document).ready(function(){
$(".userName").bind("cut copy paste",function(e){
e.preventDefault();
});
});

所以这里的代码看起来基本上是正常的。使用这篇博客文章中的一个例子,我制作了这个jsFiddle,它确实有效,包括在我的Android设备上。

我认为这里被忽视的是两件事:

  • 表单的HTML片段
  • jQuery的选择器实际上是如何工作的

ID

ID对于页面上的所有元素都是唯一的。将只选择一个元素。选择此选项的方法是:$('#id_name')。ID为的HTML示例

<输入名称=";字段名称">id=";id名称">>

类别

CSS和选择器都使用类。它们可以用于一个或多个元素。将选择具有此类的所有元素。选择此选项的方法是:$('.class_name')。带有类的HTML示例:

<输入名称=";字段名称">class=";class_name">>

名称

表单通常使用名称在提交后将信息传递回服务器;与ID或类相比,它们较少用于选择器。它们可以用于一个或多个元素。将选择具有此类的所有元素。选择此选项的方法是:$('[name="field_name"]')。只有一个名称的HTML示例:

<inputname=";字段名称">>

摘要

我认为实际发生的事情是,字段的HTML不包含ID,只包含名称。此外,写入的选择器很可能不正确。该选择器将被设计为选择userName元素,例如:

<userName foo=";条">这是一个自定义元素<用户名>

很可能这不是你想要的,你很可能错过了正确类型的选择器,也许也错过了使用这个选择器的正确属性

最新更新