Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 15.08.2016, 16:44
Новичок на форуме
Отправить личное сообщение для zhemkan Посмотреть профиль Найти все сообщения от zhemkan
 
Регистрация: 13.08.2016
Сообщений: 6

Я повторяю, что если я делаю
var dlina = 0;
dlina = document.getElementById('n_text').value.length;
alert (dlina);

то значение dlina обновляется до актуального только после второго нажатия на кнопку "Отправить".
Код формы:
<form method="POST" action="<?php echo $_SERVER['REQUEST_URI']; ?>" onsubmit="return validateform()">
<div class="reg_tr">
		<textarea cols="45" rows="5" name="n_text" class="reg_textarea" id="n_text">Текст...</textarea>
	</div>	
<input type="submit" value="Отправить">	
	<script type="text/javascript">
		CKEDITOR.replace( 'n_text');
	</script>	
	</form>

Я уже не знаю, как подробнее описать то свою проблему...
Ответить с цитированием
  #12 (permalink)  
Старый 15.08.2016, 21:42
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Цитата:
action="<?php echo $_SERVER['REQUEST_URI']; ?>"
Можешь оставить пустым action, пойдет на текущий адрес, то есть на риквест ури.

Второе, не надо пихать скрипт в форму, то есть это вообще не обязательно, а создается впечатление, что это важно. Запускай замену после формы, скедитор все равно ищет поле по id

Третье. В каком месте это самое "если я делаю"? Вот как в сообщении - перед формой что ли?

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

Ну убери скедитор на время и проверь ничего больше не меняя - когда твоя актуальная длина объявится.
Ответить с цитированием
  #13 (permalink)  
Старый 15.08.2016, 21:46
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

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


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

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



и посмотри что будет.
Ответить с цитированием
  #14 (permalink)  
Старый 15.08.2016, 22:01
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

Цитата:
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 сгорает раньше и поэтому убдейт проходит позже и виден только при следующей проверке.

Последний раз редактировалось warren buffet, 15.08.2016 в 22:05.
Ответить с цитированием
  #15 (permalink)  
Старый 16.08.2016, 01:02
Новичок на форуме
Отправить личное сообщение для zhemkan Посмотреть профиль Найти все сообщения от zhemkan
 
Регистрация: 13.08.2016
Сообщений: 6

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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка скриптом на минимальное количество символов sergofedor06 Элементы интерфейса 3 18.10.2018 14:18
Задать количество символов перед номером страницы! Teamur Общие вопросы Javascript 24 30.12.2015 21:58
Не показывает количество символов, работа со строками, форма для регистраци kvadratnt Общие вопросы Javascript 4 11.12.2012 23:15
количество символов ivanweb jQuery 14 13.09.2012 16:26
Ограничить количество символов в textarea iNfantry jQuery 2 14.05.2012 11:35