我不想允许用户在文本框中剪切复制粘贴我尝试了以下代码,但它甚至没有绑定到那个元素:
$(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=";条">这是一个自定义元素<用户名>
很可能这不是你想要的,你很可能错过了正确类型的选择器,也许也错过了使用这个选择器的正确属性