![](/img/trans.png)
[英]TextBox : Disable the 'Paste' option whilst allowing 'Cut' and 'Copy' on Right-click
[英]Prevent copy/paste and right-click meant for textbox (email address)
我想阻止用户:
这是行不通的。
<html>
<head runat="server">
<title>Confirm email page</title>
<script type="text/javascript" language="javascript">
function DisableRightClick(event) {
//For mouse right click
if (event.button == 2) {
}
}
function DisableCtrlKey(e) {
var code = (document.all) ? event.keyCode : e.which;
// look for CTRL key press
if (parseInt(code) == 17) {
window.event.returnValue = false;
}
}
</script>
</head>
<body style="font-family: Verdana; font-size: 1em">
<form id="form1" runat="server">
<div>
<h1>Confirm Email</h1>
<asp:Label ID="Label2" runat="server" Text="Enter Email Address: "></asp:Label>
<asp:TextBox ID="TextBox2" runat="server" oncopy="return false" onMouseDown="DisableRightClick(event)" ></asp:TextBox><br />
<asp:Label ID="Label3" runat="server" Text="Confirm Email Address: "></asp:Label>
<asp:TextBox ID="TextBox3" runat="server" onKeyDown="return DisableCtrlKey(event)"></asp:TextBox><br />
</div>
</form>
</body>
</html>
得到它的工作!!
<div>
<h1>Copy Paste Preventer!!!</h1>
<asp:Label ID="Label1" runat="server" Text="Enter Username: "></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:Label ID="Label2" runat="server" Text="Enter Email Address: "></asp:Label>
<asp:TextBox ID="email" runat="server" oncopy="return false" onpaste="return false" oncut="return false" oncontextmenu="forms[0].elements[0].value++; return false"></asp:TextBox><br />
<asp:Label ID="Label3" runat="server" Text="Confirm Email Address: "></asp:Label>
<asp:TextBox ID="TextBox3" runat="server" oncopy="return false" onpaste="return false" oncut="return false" oncontextmenu="forms[0].elements[0].value++; return false"> </asp:TextBox><br />
</div>
使用jQuery时,这非常简单,并且与ASP.NET完全兼容:
<script type='text/javascript' src='http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js'>
</script>
<script type="text/javascript">
$(function() {
$('input[id$=TextBox2]').bind('cut copy paste', function(e) {
e.preventDefault();
alert('You cannot ' + e.type + ' text!');
});
});
</script>
这是一篇文章,说明如何与ASP.NET一起使用:
http://www.dotnetcurry.com/ShowArticle.aspx?ID=398
正如Scott指出的那样:在生产中,您应该将jQuery引用放在html的底部(仍然在body标签内)。
更新
由于您要求完全阻止上下文菜单,因此您可以执行以下操作:
添加此脚本:
<script type="text/javascript">
document.getElementById('TextBox2').oncontextmenu = function (){
return false;
};
</script>
返回false
时不显示菜单项。 这是浏览器对此的支持概述:
http://help.dottoro.com/ljhwjsss.php
<div>
<h1>Copy Paste Preventer!!!</h1>
<asp:Label ID="Label1" runat="server" Text="Enter Username: "></asp:Label>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:Label ID="Label2" runat="server" Text="Enter Email Address: "></asp:Label>
<asp:TextBox ID="email" runat="server" oncopy="return false" onpaste="return false" oncut="return false" oncontextmenu="forms[0].elements[0].value++; return false"></asp:TextBox><br />
<asp:Label ID="Label3" runat="server" Text="Confirm Email Address: "></asp:Label>
<asp:TextBox ID="TextBox3" runat="server" oncopy="return false" onpaste="return false" oncut="return false" oncontextmenu="forms[0].elements[0].value++; return false"> </asp:TextBox><br />
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.