text区域限制为250个单词jquery



Hi有没有一种方法可以限制textarea中的单词,该方法具有与maxlength相同的功能,使用jquery或coffeescript并使用keyup函数,因为我需要显示一个准确的计数器。我到处找,但找不到办法。我试过这个,但它是在按键上,它允许用户粘贴250多个单词。

  $(document).on "keypress", '#company_desc', (e) ->
    s = $("#company_desc").val()
    s = s.replace(/(^s*)|(s*$)/g, "")
    s = s.replace(/[ ]{2,}/g, " ")
    s = s.replace(/n /, "n")
    count = s.split(" ").length
    $(".counter").html(250 - count + " words remaining")
    if count == 250
      key = (if e.charCode then e.charCode else (if e.keyCode then e.keyCode else 0))
      switch key
        when e.ctrlKey && key == keys[CTRL_A] then return true
        when e.ctrlKey && key == keys[CTRL_C] then return true
        when e.ctrlKey && key == keys[CTRL_X] then return true
        when e.ctrlKey && key == keys[CTRL_Z] then return true
        else return key == 46 || key == 8

您的文本区域添加attr"maxlength"

试试这个。

$("your textarea id and class").attr("maxlength", 250);
var maxWords = 150;
jQuery('textarea').keypress(function() {
var $this, wordcount;
$this = $(this);
wordcount = $this.val().split(/b[s,.-:;]*/).length;
if (wordcount > maxWords) {
    jQuery(".word_count span").text("" + maxWords);
    alert("You've reached the maximum allowed words.");
    return false;
} else {
    return jQuery(".word_count span").text(wordcount);
}
});

小提琴手:http://jsfiddle.net/qPvch/164/

所以我想到了这个。

var maxWords = 250;
jQuery('textarea').keyup(function() {
    var a, wordcount;
    a = $(this).val();
    a = a.replace(/(^s*)|(s*$)/g, "");
    a = a.replace(/[ ]{2,}/g, " ");
    a = a.replace(/n /, "n");
    wordcount = a.split(" ").length;
    if (wordcount == maxWords) {
        $(this).val(a.substr(0, a.length));
    }
    if (wordcount > maxWords) {
        $(this).val(a.substr(0, a.length - 1));
    }
    return jQuery(".word_count span").text(maxWords - wordcount + " words remaining");
});
$('textarea').bind("paste",function(e) {
        e.preventDefault();
    });

我使用.substr(0, a.length -1)来剪切单词并迫使用户保持在maxWords内,我还禁用了在文本区域内粘贴(这也禁用了右键粘贴),但我认为这不是最好的方法,如果用户仍然可以使用粘贴,并在粘贴后自动剪切多余的单词,或者像maxlength那样在用户已经达到最大单词时禁用它。有什么建议吗?这是我的小提琴-JSFiddle

相关内容

  • 没有找到相关文章

最新更新