javascript - 只允许某些按键

标签 javascript jquery

我有一个摘要框,一旦达到 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/

相关文章:

javascript - 如何对一个对象进行两次引用

javascript - 将多个音频点击 JS 功能合并为一个?

javascript - 如何在 OpenLayers 5 中仅发送修改后的几何图形?

javascript - 使用 Javascript 更改 CSS 类

Jquery查找表中项目的多个条件

javascript - Codeigniter Ajax 发布 : Always Return Same Data

javascript - jQuery 表单中的 .change 函数问题

jquery - 根据 URL 显示事件页面

javascript - 隐藏或删除移动视口(viewport)中的 div 类?

javascript - Vue.js默认函数参数解构和 'this'