gpt4 book ai didi

javascript - 使用 javascript .net 限制文本框中的字符类型和粘贴

转载 作者:行者123 更新时间:2023-11-30 17:48:32 24 4
gpt4 key购买 nike

场景如下:

我正在尝试显示指示“剩余 XY 个字符”,并将 texbox 中的字符限制为用户类型。我也有多行 teboxes,所以 MaxLength 并不总是适合我(别担心,我也在服务器端检查)。

这是我学到的:onkeyup 与此功能完美配合:

function LimtCharacters(txtMsg, CharLength, indicator) {
chars = txtMsg.value.length;
document.getElementById(indicator).innerHTML = CharLength - chars;
if (chars > CharLength) {
txtMsg.value = txtMsg.value.substring(0, CharLength);
}
}

但是,我还需要检测粘贴的值。如果用户使用 CTRL+V 没问题,但如果用户使用鼠标粘贴,这将不起作用。我了解到,在这种情况下我们需要延迟(此处): Javascript OnPaste

所以,我像这样更新(添加了 onPaste 事件):

/* FUNCTION THAT LIMITS INSERTED CHARACTERS IN TEXTBOX */

function LimtCharacters(txtMsg, CharLength, indicator) {
chars = txtMsg.value.length;
document.getElementById(indicator).innerHTML = CharLength - chars;
if (chars > CharLength) {
txtMsg.value = txtMsg.value.substring(0, CharLength);
}
}

/* Delay is needed if user uses paste with mouse (right click and paste). After delay same function (LimtCharacters) can be called*/
function pasted(txtMsg, CharLength, indicator) {
setTimeout(function () {
LimtCharacters(txtMsg, CharLength, indicator);
}, 10);
}

ASPX 文件中的标记:

<asp:TextBox ID="tbTitle" runat="server" ClientIDMode="Static" MaxLength="255" 
onKeyup="LimtCharacters(this,255,'lblTitleCount')"
onPaste="pasted(this,255,'lblTitleCount')" />

<asp:Label ID="lblTitleCount" Text="255" runat="server" ClientIDMode="Static" />

lblTitle 是显示“剩余字符数”值的标签。

它在 FireFox 和 Chrome 中完美运行。但它在 IE 中不起作用。

我做错了什么?

我正在使用 visual studio 2010 .net。

任何提示/帮助将不胜感激;)

最佳答案

<script type="text/javascript">
$(document).ready(function () {
$("#tbTitle").on("input", function () {
LimtCharacters(this, 255, 'lblTitleCount');
});
});
</script>


//FUNCTION THAT LIMITS INSERTED CHARACTERS IN TEXTBOX

function LimtCharacters(txtMsg, CharLength, indicator){
chars = txtMsg.value.length;
document.getElementById(indicator).innerHTML = CharLength - chars;
if (chars > CharLength) {
txtMsg.value = txtMsg.value.substring(0, CharLength);
//Text in textbox was trimmed, re-set indicator value to 0
document.getElementById(indicator).innerHTML = 0;
}
}

关于javascript - 使用 javascript .net 限制文本框中的字符类型和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19588905/

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