gpt4 book ai didi

javascript - 捕获 asp.net 文本框上的鼠标点击

转载 作者:行者123 更新时间:2023-11-30 16:35:17 26 4
gpt4 key购买 nike

我有一个弹出框,允许用户输入简短(50 个字符)的注释。我需要做的是弄清楚如何防止用户使用鼠标右键单击来复制/粘贴笔记。

我查了所有events available对于文本框,onkeyup 和 onkeydown 不在此列表中,但它们确实有效果。

我有以下捕获击键的 JavaScript:

<!--//**********************************
// 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>

然后这个文本框在按下一个键时调用上面的函数:

<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 事件?

最佳答案

首先,向您的文本框添加一个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);" />

接下来,改编Fabrício Matté's处理 onpaste 触发和 value 被填充之间的时间差异的解决方案:

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);
}

关于javascript - 捕获 asp.net 文本框上的鼠标点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788451/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com