Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Минимальное ограничение на количество символов (https://javascript.ru/forum/dom-window/64472-minimalnoe-ogranichenie-na-kolichestvo-simvolov.html)

warren buffet 15.08.2016 21:46

Вот так если сделать до формы

var dlina = 0;
dlina = document.getElementById('n_text').value.length;
alert (dlina);


то алерт тебе напишет 0, поскольку уже на .value от undefined возникнет ошибка и в dlina ничего нового не запишется, а будет впечатление что 0. Вот так сделай до:

alert(document.getElementById('n_text').value.length);



и посмотри что будет.

warren buffet 15.08.2016 22:01

Ну блин я же написал кури ману по скедитору. Оказывается я сильно переоценил интеллект создателей этого чюда. Они все-таки ищут форму, а это элементарно делается от любого инпута, и вешаются на ее сабмит переписывая текст из своей лапши в поле ввода. Идиотизм. Короче, за тебя почитал.

Цитата:

Please note that the replaced <textarea> element is updated automatically by CKEditor straight before submission. If you need to access the <textarea> value programatically with JavaScript (e.g. in the onsubmit handler to validate the entered data), there is a chance that the <textarea> element would still store the original data. In order to update the value of replaced <textarea> use the editor.updateElement() method.
болд мой, вот что там: есть вероятность, что в текстарии останется оригинальный текст. И далее: в порядке принудительного обновления значения текстарии нажмите на editor.updateElement()

То есть тебе надо вызвать CKEDITOR.updateElement() в твоей валидации прежде чем проверять dlina.

ЗЫ Если бы ты сделал цивилизованный form.addEventListener('submit',validate), то и без енфорса убдейта все бы работало, ибо твой листенер палился бы ПОСЛЕ скедироского, поскольку его вешается в момент инициализации. А сейчас твой onsubmit сгорает раньше и поэтому убдейт проходит позже и виден только при следующей проверке.

zhemkan 16.08.2016 01:02

Премного благодарю, теперь все получилось!


Часовой пояс GMT +3, время: 18:01.