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

时间:2014-02-28 09:06:35

标签: jquery html5 javascript-events paste

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

如果id为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();
    });
    });

答案 2 :(得分:0)

所以这里的代码看起来很健全。使用this blog post中的一个示例,我制作了this jsFiddle,这绝对有效,包括在我的Android设备上。

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

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

的ID

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

< input name =" field_name"的 ID =" ID_NAME" >

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

< input name =" field_name"的类=" CLASS_NAME" >

名称

表单通常使用名称在提交后将信息传递回服务器;它们不像ID或类那样用于选择器。它们可用于一个或多个元素。选择具有此类的所有元素。选择此方法的方法是:$('[name="field_name"]')。仅带有名称的HTML示例:

< input name =" field_name" >

摘要

我认为实际上是该字段的HTML不包含ID而只包含名称。另外,写入的选择器很可能是不正确的。此选择器旨在选择userName 元素,例如:

< userName foo =" bar">这是一个自定义元素< / userName>

很可能这不是您想要的,并且您很可能缺少正确的选择器类型以及与使用此选择器相关联的正确属性