我有这段代码,它会显示字数并应用字数上限。你能告诉我如何更改此代码以应用下限吗?例如,如果用户输入299个单词并点击输入,则会出现一个弹出窗口,并说,您没有输入足够的单词。感谢。
$("#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);
}
});
});
答案 0 :(得分:1)
您需要添加按键事件才能在按下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();
}
});
答案 1 :(得分:1)
您需要在该文本区域添加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");
}
}
}