Ошибка счетчика текстовых символов при загрузке страницы

0

Английский не является моей родной идиомой, поэтому заранее извиняюсь за плохую грамматику.

Я использую javascript для подсчета символов текстового поля, код работает плавно, показывая, что ограничение символа уменьшается при наборе текста, используя этот код, я вызывал текстовую область, чтобы php-метод вызывал из базы данных текст, и вот где проблема приходит, при тестировании страницы при загрузке он показывает текст в текстовом поле, но предел символа остается на 500, иначе он меняет значение, если тип u в текстовом поле показывает правильный предел символов.

Как я могу показать правильный предел символов при загрузке страницы?

вот мой код:

HTML-код:

<tr>
<td align="center" colspan="4">
<textarea "rows="10" cols="35" onKeyPress="return charLimit(this)" onKeyUp="return characterCount(this)"><?php echo $oRep->getDescripcion(); ?> </textarea> 
</td>
</tr>

<tr>
<td align="center" colspan="4"><p><strong><span id="charCount">500</span></strong> Caracteres disponibles.</p></td>
</tr>

JS CODE:

var maxLength=500;
function charLimit(el) {
    if (el.value.length > maxLength) return false;
    return true;
}
function characterCount(el) {
    var charCount = document.getElementById('charCount');
    if (el.value.length > maxLength) el.value = el.value.substring(0,maxLength);
    if (charCount) charCount.innerHTML = maxLength - el.value.length;
    return true;
}

Я onchange="return charLimit(this) добавить событие в текстовое поле, например, onchange="return charLimit(this) но без изменений.

Теги:
textarea
events

2 ответа

1
Лучший ответ

Добавьте <body onload="characterCount(document.getElementById('text'))"> в свой тег body и сделайте идентификатор текстового поля как "текст".

  • 0
    Огромное спасибо! Я пытался поместить это событие в текстовую область глупо меня.
  • 0
    Это не сработает по двум причинам: когда загружается текстовое поле, диапазон значений charcount - нет. Кроме того, событие onload не существует для textarea.
0

Во-первых, я добавлю идентификатор для этого текстового поля, скажем, 'descriptionTextArea'. Во-вторых, я буду слушать событие onload на теле (например), а внутри обработчика onload я бы сделал это:

// get reference to body
var body = document.getElementsByTagName('body')[0];

// listening for onload event
body.addEventListener('load', loadHandler);

function loadHandler() {
    // get reference to our description text area
    var descriptionTextArea = document.getElementById('descriptionTextArea');

    // call method with reference to descriptionTextArea as parameter
    characterCount(descriptionTextArea);
}

Таким образом, мы вызываем метод characterCount при загрузке страницы, и он должен правильно вычислять количество символов без взаимодействия с пользователем.

  • 0
    это также работает, но его немного путают с методом вызова тела.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню