Проверка на заполненность textarea

Yura

Новичок
Проверка на заполненность textarea

Для проверки заполненности формы использую следующую функцию javascript:
function CheckEmpty(f, theName) {
window.alert("fval="+f.value);
if (f.value == "") {
alert("Поле \"" + theName + "\" должно быть заполнено!");
f.focus();
click=0;
return false;
}
else {
return true;
}
}


Если <input type="text", то все ОК (проверяется как нужно). Если <textarea, то появляется сообщение "Поле ...... должно быть заполнено!" и происходит добавление информации в базу данных независимо от того заполнено поле или нет. Может ли быть проблема в том, что используется tinyMce? Или проблема в чем-то другом?
 

Гравицапа

elbirret elcno
Yura
1. А на стороне сервера проверок на пустые значения нет что ли?
2. Приведи код формы
 

Yura

Новичок
Мне нужна проверка на стороне клиента.
Код формы:
<form action=<?php echo $action; ?> method=post enctype="multipart/form-data" onSubmit="return (CheckEmpty(this.n_title, 'Заголовок') && CheckEmpty(this.n_text, 'Описание'))">
<tr>
<td width="110">Заголовок *</td>
<td><input size=80 class=input type="text" name="n_title" value="<?= $n_title ?>"></td>
</tr>
<tr>
<td>Текст новости *</td>
<td><textarea name="n_text" cols="80"><?= $n_text ?></textarea></td>
</tr>

<tr>
<td>Автор</td>
<td><input size=80 class=input type="text" name="n_author" value="<?= $n_author ?>"></td>
</tr>
<tr>
<td><p class=zag2>Источник</td>
<td><input size=80 class=input type="text" name="url_name" value="<?= $url_name ?>"></td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="<?= $button ?>"></td>
</tr>
</form>

-~{}~ 28.03.07 21:15:

Алертом пробовал смотреть. Почему-то значение textarea не передается в CheckEmpty(f, theName) . А почему, не могу понять. Если это поле заполняю, то в базу данных значение добавляется.
 

Yura

Новичок
3. Должно работать так: после заполнения формы нажимаю на кнопку, данные из формы передаю в CheckEmpty() для проверки. Для проверки заполненности n_title - CheckEmpty(this.n_title, 'Заголовок'), зполненности n_text - CheckEmpty(this.n_text, 'Описание').
В функции CheckEmpty проверяются значения n_title и n_text соответственно. Если значение = "" то alert('Поле Заголовок должно быть заполнено') - для n_title и alert('Поле Описание должно быть заполнено'), возвращает false и курсор устанавливается в незаполненное поле, иначе true. Если все обязательные поля заполнены, то данные передаются на сервер.

2. В функцию CheckEmpty() значение n-title передается, а n_text нет. Выводил алертом (alert(f.value))
 

WDStalker

Новичок
Yura
А не легче в функцию передать объект формы и потом условиями проверить все поля?
Например:
<form action=’’ method=post enctype="multipart/form-data" onSubmit="return CheckEmpty(this);">

function CheckEmpty(form) {

if(form.поле. value == ‘’){
alert(‘блбфл’);
return false;
}

}
 

Yura

Новичок
Этот способ тоже не работает. Я только что обнаружил следующее: Перед формой - подключение tinymce. Если я его убираю, то все работает как надо. Может в этих подключениях (или как это правильно назвать) что-то нужно добавить или убрать?
Вот чего там есть:
<!-- TinyMCE -->
<script language="javascript" type="text/javascript" src="../jscripts/tiny_mce/tiny_mce.js"></script>
<script language="javascript" type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced",
onpageload: "tinymce_onPageLoad",
plugins : "inlinepopups,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,zoom,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras",
content_css : "../util/example_advanced.css",
theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,|,search,replace,|,bullist,numlist,|,outdent,indent,|,link,unlink,anchor,image,cleanup,code,|,forecolor,backcolor",
theme_advanced_buttons3 : "tablecontrols,|,hr,|,sub,sup,|,charmap,|,ltr,rtl,|,fullscreen",

theme_advanced_toolbar_location : "top",
theme_advanced_toolbar_align : "left",
theme_advanced_path_location : "bottom",
extended_valid_elements : "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",

theme_advanced_styles : "1=s1;2=s2;3=s3;4=s4;5=s5;6=s6;7=s7;8=s8;9=s9",
paste_strip_class_attributes : "all",
paste_remove_spans : false,
paste_remove_styles : false
});


function fileBrowserCallBack(field_name, url, type, win) {
// This is where you insert your custom filebrowser logic
alert("Filebrowser callback: field_name: " + field_name + ", url: " + url + ", type: " + type);

// Insert new URL, this would normaly be done in a popup
win.document.forms[0].elements[field_name].value = "someurl.htm";
}

function tinymce_onPageLoad() {
var areas = document.getElementsByTagName("textarea");
for (i=0; i < areas.length; i++) {
areas.rows = 12;
}
}

</script>
<!-- /TinyMCE -->
 

WDStalker

Новичок
Yura Это не ответ - Этот способ тоже не работает.
Какие ошибки?
 

Yura

Новичок
Все тоже самое - из textarea не передается значение в CheckEmpty. Для других полей работает и моя функция и то, что ты написал. А в РНР-скрипт все передается нормально. Но, мне нужна проверка на стороне клиента. Мне кажется, что проблема где-то в tinymce. Ведь, когда я его убираю, все работает отлично.
 

Гравицапа

elbirret elcno
Yura
Код, который ты привел (функция CheckEmpty() и форма http://phpclub.ru/talk/showthread.php?postid=707388#post707388),
рабочий, по крайней мере в Firefox.
Я не знаю как там может повлиять TinyMCE...убери его включения и , если всё равно работать не будет, ищи ошибки.
 

WDStalker

Новичок
Понятно. Ну тогда разбирайся с tinymce или используй другой редактор.
 

Yura

Новичок
Этот редактор хорошо удаляет лишние тэги после ворда. Моему заказчику он очень нравится, да и мне тоже (если, конечно, пренебречь временем загрузки). Придется с ним разбираться. Может кто знает, как решить проблемку? Подскажите.
 

asm

Пофигист
Используйте обьект TinyMCE для проверки.
Должны быть методы типа getText.... getHTML
 
Сверху