<script>
function validateform()
{
var MAXNTEXTLENGTH = 200,
abuse='fuck,suck,dick,pussy',
msgs={
2:'Text must be longer than '+ MAXNTEXTLENGTH +' characters',
3:'Text should not contains words like '+abuse,
},
validate=function(){
var txt = form.n_text.value.trim();
if(txt.length<MAXNTEXTLENGTH) throw 2;
};
form.addEventlistener('submit',function(e){
try{
validate();
}
catch(msgn){
e.preventDefault();
alert(msgs[msgn]);
return false;
};
});
}
</script>
или
<script>
function validateform()
{
var MAXNTEXTLENGTH = 200;
form.addEventlistener('submit',function(e){
if(form.n_text.value.trim().length<MAXNTEXTLENGTH) {
e.preventDefault();
alert('Text must be longer than '+ MAXNTEXTLENGTH +' characters');
return false;
}
});
}
</script>
не вызывают вообще никаких реакций при выполнении.
Ckeditor создает поверх моего textarea свой Body внутри Iframe. Актуальное количество символов передается в мой textarea только после выполнения функции.
Я добавил alert (dlina);, сразу после загрузки страницы я нажимаю "Отправить", получаю в окошке цифру 8, что соответствует кол-ву символов в строке "Текст...", который по умолчанию загружается в textarea при загрузки страницы. Если я добавлю еще 2 символа после "Текст...", то по нажатию "Отправить" я снова вижу 8, однако, если я ничего не изменяю, и снова нажимаю на "Отправить", то уже получаю актуальное значение - 10. И так всегда - актуальное значение я вижу только после двойного нажатия (двойного запуска функции).
Как избавиться от этого, учитывая такую особенность ckeditor?