如何防止用户使用JQuery将文本输入表单字段?

时间:2010-09-02 01:25:21

标签: jquery

我想阻止用户在textarea中输入超过100个字符。我已经编写了代码,可以检测用户的帖子何时达到100个字符。但我不知道如何阻止他在此之外再输入任何内容:

$(document).ready(function(){

   $('.comment').keyup(function(){
       var count = this.value.length;
       if (count > 100) {

           // what goes here???

       }           
   });

});


  <textarea class="comment" rows="10" cols="30"></textarea>

3 个答案:

答案 0 :(得分:3)

使用keypress可能会更好。你可以return false;

​$('textarea').keypress(function() {
    if(this.value.length >= 100) 
        return false;
})​​​​​;​

这也可以防止用户按住某个键输入超出限制的多个字符。

如果您想使用keyup,可以这样做:

$('.comment').keyup(function(){
   var count = this.value.length;
   if (count > 100) {

    this.value = this.value.substr(0,100);

   }           
});

答案 1 :(得分:1)

​jQuery('textarea').keypress(function(e) {
    if(this.value.length >= 100) {
        e.preventDefault();
        return false;
    }
})​​​​​;​
某些浏览器(如IE)需要使用preventDefault,并且全部支持; 但真的只需要一个href onclick

keyup不是防止键的好事件...使用keydown进行键重复

答案 2 :(得分:0)

$(document).ready(function(){
    $('textarea[maxlength]').keyup(function(){
        var max = parseInt($(this).attr(’maxlength’));
        if($(this).val().length > max){
            $(this).val($(this).val().substr(0, $(this).attr('maxlength')));
        }

        $(this).parent().find('.charsRemaining').html('You have ' + (max - $(this).val().length) + ' characters remaining');
    });
});

来自http://that-matt.com/2008/07/textarea-maxlength-with-jquery/

http://remysharp.com/2008/06/30/maxlength-plugin/

还有一个插件