我有一个摘要框,一旦达到 300 个字符,我不希望用户能够再输入任何内容。问题是,对于我的代码,如果我想更改内容,则使用 keydown 功能时我无法退格、删除、ctrl+a(全选)。有没有办法阻止文本输入,但允许出于这些目的按下按键?
function char_count(){
limit = 300;
current = $('#property_summary').val().length;
$('#char_count').html(current + '/' + limit);
}
$('#property_summary').keyup(function(){
char_count();
});
$('#property_summary').keydown(function(e){
if( $('#property_summary').val().length == 300 ){
e.preventDefault();
}
});
最佳答案
也许这会有帮助?
<textarea maxlength="300">
Enter text here...
</textarea>
您必须记住使用 PHP 等服务器端验证:strlen() 函数。
根据评论补充几句话: 我们应该尽我们所能来保持标准。操作系统标准:CTRL-C用于复制,CTRL+V用于粘贴。 如果有人覆盖此设置,他几乎总是错的。 Javascript 是用来提供帮助的,而不是用来让人伤脑筋的。
如果 maxlength 设置为 300 百,请做一点注释:警告,您不能输入超过 300 个字符,请更正您的文本。 不需要破坏、酷儿和破坏用户文本。 这是我的观点,如果有人有其他观点(我认为是的),请写评论。
PS。在这种情况下,最大长度是附加功能。因此,让浏览器“ catch ”规范,并记住服务器端验证。关于javascript - 只允许某些按键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21311576/