文本区域中的字数限制较低

Lower word limit in textarea

本文关键字:区域 文本      更新时间:2023-09-26

我有这个代码,它显示字数统计并应用字数上限。你能告诉我如何更改此代码以应用下限吗?例如,如果用户输入 299 个单词并点击 Enter,则应该会出现一个弹出窗口并说,您输入的单词不足。谢谢。

    $("#TextArea").on('keyup', function () {
        var words = this.value.match(/'S+/g).length;
        if (words > 300) {
            var trimmed = $(this).val().split(/'s+/, 300).join(" ");
            $(this).val(trimmed + " ");
        }
        else {
            $('#display_count2').text(words);
            $('#word_left2').text(300 - words);
        }
    });
}); 

您需要添加一个按键事件,以便在按下 Enter 时使其正常工作。如果您希望它在表单中的任何位置工作,则可以将其添加到文档中。这样,无论在哪里按回车键,它都会运行。

$(document).keypress(function(e) {
    if(e.which == 13) {
        checkWordLimit();
    }
});

然后,您可以将其连接到检查单词长度的函数。

function checkWordLimit() {
    var words = this.value.match(/'S+/g).length;
    if (words < 300) {
        alert("You need to enter at least 300 words!");
    } else {
        $('#display_count2').text(words);
        $('#word_left2').text(300 - words);
    }
}

如果要保持字数统计文本更新,只需在 keyup 事件中继续调用该函数:

$("#TextArea").on('keyup', function () {
    checkWordLimit();
});

要在提交表单之前进行检查(单击按钮),则可以更改函数以根据字数检查返回true/false,然后在成功时提交表单。请注意,这是针对常规按钮,而不是提交按钮。如果是提交按钮,则需要截获表单中的submit事件。

$("#SomeButton").on('click', function () {
    if(checkWordLimit()) {
        $("#SomeForm").submit();
    }
});

您需要在该文本区域添加 keydown 事件,并且您的事件处理程序函数应该是这样的。

function onKeyDown(e){ 
  if(e.keyCode == 13){ //for enterkey
      var words = this.value.match(/'S+/g).length;
    if(words >= 300){
       //Your success code
     }else{
       alert("You didn't enter enough words");
     }
   }
}