如何替换 javascript 中的 onpaste 函数
How to replace the onpaste function in javascript?
网页上的输入元素定义如下,以防止粘贴密码:
<input type="password" class="field" id="password" name="password" title="Enter your password" maxlength="50" onpaste="javascript:return false;" size="38" tabindex="2">
我想在此输入字段中启用粘贴。使用 Firebug 或等效项,我可以编辑 onpaste 函数,因此代码为:
onpaste="javascript:return true;"
这对我来说很好,但对于其他用户,我想要一个更简单的解决方案。我想到的是,如果我能给他们一些Javascript,他们可以打开控制台并粘贴一个简单的单行代码。然而,当我尝试这样做时,Javascript没有效果。我尝试了以下方法,但都没有奏效。
$('#password').onpaste=""
$('#password').onpaste="javascript:return true;"
我做错了什么?
问题是你试图将jQuery与常规JavaScript结合起来。你可以只使用纯JavaScript来删除onpaste监听器。
document.getElementById('password').onpaste=""
如果你想改用jQuery,你可以使用:
$('#password')[0].onpaste=""
这将给出相同的结果。
只需删除 DOM 元素的 onpaste
属性,而不是没有 onpaste
属性的 jQuery 对象。您的代码正在创建一个被忽略的属性(设置为字符串)。
在下面的示例中,您可以单击按钮并重新启用粘贴。
document.querySelector('button').addEventListener('click', function() {
document.getElementById('password').removeAttribute('onpaste');
})
<input type="password" class="field" id="password" name="password" title="Enter your password" maxlength="50" onpaste="javascript:return false;" size="38" tabindex="2">
<button>Allow pasting</button>
$('#password').onpaste=""
$('#password').onpaste="javascript:return true;"
不是有效的函数。对于来自粘贴的触发事件,您必须编写这样的函数
$('#password').bind("paste", function(e) {
callback();
});
但是您的问题的解决方案在这里 http://jsfiddle.net/9et20v36/,在按钮allow
click
功能中,我从允许粘贴文本的输入中删除onclick
属性。
所以对于纯粹的JavaScript使用
document.getElementById('password').removeAttribute('onpaste');
或 jQuery 方式
$('#password').prop('onpaste', null);
相关文章:
- javascript中的数组出错
- JavaScript中的函数和对象之间没有区别吗?
- Javascript中的空白是什么
- 为什么要使用0>javascript中的0
- 如何制作简单的php'在Javascript中的foreach等价物
- javascript中的布尔条件
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 验证Javascript中的Textarea
- 可以't使用Appcelerator将JSON文件解析为JavaScript中的TableView
- 是“;x==a||b”;以及“;x==a||x==b”;JavaScript中的等效语句
- 仅在IE中,javascript中的时区名称不正确
- JavaScript 中的嵌套函数和 “this” 关键字
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- JavaScript 中的高阶函数
- Javascript中的备选注释方法
- 如何使用JavaScript中的用户输入创建序列/序列
- 无法理解JavaScript中的静态方法
- 如何附加'#'到Javascript中的值
- javascript 中的全局函数
- 用javascript中的param执行动态函数