我限制用户在文本区域中输入字符的最大限制(40Char)。
我在JS
onKeyUp
事件的textarea
函数下面调用此内容。
但是当我复制粘贴超过40chars的内容时,不会弹出(警告),直到我在textarea上执行keyup / down。
function checkLength(textBox, e, maxLength) {
if (textBox.value.length > maxLength - 1) {
alert("* You have reached max limit ");
textBox.value = textBox.value.substr(0, maxLength);
}
else {
alert(maxLength - textBox.value.length + " characters remaining");
}
}
在粘贴到keyup/down
后,有没有办法在没有textarea
的情况下获得提醒?
答案 0 :(得分:1)
您可能应该使用onChange
事件
答案 1 :(得分:1)
如果你想动态修剪额外的字符,另一种可能的方法如下。
trimText()
。setInterval
功能,每500毫秒后调用trimText()
。setInterval
功能并再次运行trimText()
。trimText()
。如果需要,这将是一个额外的检查。根据您的要求,您可以更新持续时间。
示例:http://jsfiddle.net/codebombs/AyLdW/
如果您只想显示一条提醒信息,请使用onchange
。
答案 2 :(得分:1)
假设我们有一个asp文本框,那么我们可以使用“OnPaste”事件,如下所示
<asp:TextBox TextMode="MultiLine" runat="server" ID="txtComment_c"
onpaste="return maxLengthPaste(this, 40)" MaxLength="40"></asp:TextBox>
在首先粘贴内容之前,我们需要检查已占用的长度,然后window.clipboard.getdata.length将为我们提供即将粘贴的数据长度。请考虑下面的代码
function maxLengthPaste(field, maxChars) {
if ((field.value.length + window.clipboardData.getData("Text").length) > maxChars) {
alert("Cannot have more than " + maxChars + " Characters");
return false;
}
}
答案 3 :(得分:0)
类似的东西:
$('#textbox1').on('change', function() {
var currentText = $(this).val();
if(currentText.length > 40)
$(this).val(substr(currentText,0,40));
});
甚至还有一个Ellipsis插件可以为你添加省略号(...)。
答案 4 :(得分:-1)
得到解决方案的人:)
onKeyUp = "checkLength(this);">
</form>
<script>
function fncKeyLength(textBox){
if (window.event.ctrlKey){
if (window.event.keyCode == 86)//Paste
if (textBox.value.length > maxLength - 1)
{
alert("* You have reached max limit ");
textBox.value = textBox.value.substr(0, maxLength);
}
</script>