Member 12895537 Ответов: 1

Как поместить предупреждающее сообщение в текст максимум javascript


Привет. У меня есть вопрос относительно моих кодов. Мой вопрос звучит так:"я хочу поставить предупреждающее сообщение, если этот человек превысит ограничение слов". мой код работает хорошо, и когда он превышает этот человек не может печатать, однако какую часть на javascript я хочу поместить всплывающее предупреждающее сообщение, если он / она превысит?

Что я уже пробовал:

<textarea class="max" name="coverLetterText" id="coverLetterText" cols="80" rows="12" background placeholder="Make a Pitch not more than 400 words">

<pre><!-- script untuk textarea max-->  
<script>jQuery(document).ready(function($) {
    var max = 400;
    $('textarea.max').keypress(function(e) {
        if (e.which < 0x20) {
            // e.which < 0x20, then it's not a printable character
            // e.which === 0 - Not a character
            return;     // Do nothing
        }
        if (this.value.length == max) {
            e.preventDefault();
        } else if (this.value.length > max) {
            // Maximum exceeded
            this.value = this.value.substring(0, max);
        }
    });
}); //end if ready(fn)</script>

1 Ответов

Рейтинг:
9

Thomas Daniels

Прямо сейчас, ваш this.value.length > 400 сравнение проверяет количество символов, а не слов (такая проверка, вероятно, тоже имеет смысл-но тогда число будет больше, и это не связано с количеством проверки слов). Таким образом, вы должны разделить строку на слова и сравнить длину массива слов:

var words = this.value.split(/\W+/);
if (words.length > max) {
    e.preventDefault();
} else if (words.length > max) {
    alert("You can only have 400 words.");
    return; // 'exits' the current function
}

split разбивает строку JavaScript разделителем - это может быть строка или, как в данном случае, регулярное выражение[^]. Каждый раз, когда регулярное выражение сопоставляется, выполняется разделение. \W+ является ли регулярное выражение здесь: \W означает "не-словесный" символ, + означает "1 или более". Итак, это split вызов будет разделен на все (серии) несловесных символов. То + это необходимо, потому что в противном случае вы получите пустые строки в массиве слов, если кто-то использует несколько несловесных символов рядом друг с другом.

Это определение \W:
Соответствует любому символу, который не является символом слова из базового латинского алфавита. Эквивалентно [^A-Za-z0-9_].

Например, /\W / или / [^A-Za-z0-9_]/ соответствует "%" в "50%".