Javascript 捕获鼠标单击asp.net文本框
我有一个弹出框,允许用户键入一个简短(50个字符)的注释。我需要做的是找出如何防止用户使用鼠标右键单击复制/粘贴便笺 我查找了所有的文本框,onkeyup和onkeydown不在这个列表中,但它们确实有效果 我有以下捕获击键的JavaScript:Javascript 捕获鼠标单击asp.net文本框,javascript,c#,asp.net,textbox,Javascript,C#,Asp.net,Textbox,我有一个弹出框,允许用户键入一个简短(50个字符)的注释。我需要做的是找出如何防止用户使用鼠标右键单击复制/粘贴便笺 我查找了所有的文本框,onkeyup和onkeydown不在这个列表中,但它们确实有效果 我有以下捕获击键的JavaScript: <!--//********************************** // Comment Character Count //********************************** --> &
<!--//**********************************
// Comment Character Count
//********************************** -->
<script type="text/javascript">
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}
</script>
函数textCounter(字段、countfield、maxlimit){
如果(field.value.length>maxlimit)
field.value=field.value.substring(0,maxlimit);
其他的
countfield.value=maxlimit-field.value.length;
}
然后,此文本框在按键时调用上述函数:
<asp:TextBox ID="txtCommentBox" TextMode="MultiLine" CssClass="textbox" Wrap="True"
Height="70px" Width="270px" Font-Size="Small" Rows="3" runat="server"
onkeyup="textCounter(this, this.form.remLen, 50);"
onkeydown="textCounter(this, this.form.remLen, 50);" />
一切都非常棒,除非有人右键单击并选择“粘贴”,否则它会绕过检查,因为没有按下任何键。有没有关于如何捕捉的想法?是否有我可以调用的未记录onmouseclick事件或其他内容?使用
TextBox.MaxLength
属性。即使在粘贴文本时,也会阻止添加其他字符。您还可以添加asp.net自定义验证程序,以确保用户没有在浏览器编辑器中更改您的html
<asp:TextBox ID="txtCommentBox" TextMode="MultiLine" CssClass="textbox" Wrap="True"
Height="70px" Width="270px" Font-Size="Small" Rows="3" runat="server" MaxLength="50"/>
首先,在文本框中添加一个
onpaste
事件:
<asp:TextBox ID="txtCommentBox" TextMode="MultiLine" CssClass="textbox" Wrap="True"
Height="70px" Width="270px" Font-Size="Small" Rows="3" runat="server"
onkeyup="textCounter(this, this.form.remLen, 50);"
onkeydown="textCounter(this, this.form.remLen, 50);"
onpaste="textCounter(this, this.form.remLen, 50);" />
IIRC,我想可能有一个
onpaste
事件。另外,一个可能有用的onchange
事件。我只是凭记忆工作,所以我可能弄错了……请看:对所有潜在的使用和滥用都非常有效。谢谢
function textCounter(field, countfield, maxlimit) {
setTimeout(function () {
if (field.value.length > maxlimit)
field.value = field.value.substring(0, maxlimit);
else
countfield.value = maxlimit - field.value.length;
}, 0);
}