Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрипт для обработки формы, не работает в Netscape и Mozilla 
:(
    Опции темы
katka
  Дата 19.7.2004, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



Добрые люди, помогите, пожалУЙста! Хочу, чтобы javascript проверял форму, прежде чем она улетит по сабмиту. ИЕ и Опера всё понимают и делают, как надо.
Вот код (пишу его в хеде):

Код

<script language="javascript">
 function checkform(){
result=true;
errcode=0;

 if((vak_form.password.value)!=(vak_form.password2.value)) errcode=4;

 if((vak_form.password.value.length)<6) errcode=3;

 if(vak_form.dp.value.length>255) errcode=2;
 if(vak_form.password2.value.length>255) errcode=2;

 if(vak_form.fil.value=="") errcode=1;
 if(vak_form.life.value=="") errcode=1;

if(errcode==1) { result=false; window.alert("Вы не заполнили одно из обязательных полей!"); }
if(errcode==2) { result=false; window.alert("Длина текста в одном из полей превышает 255 символов!"); }
if(errcode==3) { result=false; window.alert("Длина пароля должна быть не менее шести символов!"); }
if(errcode==4) { result=false; window.alert("Повторный пароль не совпадает с первоначальным!"); }

return result;
 }
</script>


а в форме пишу: onSubmit="return checkform()"

как переделать, чтобы везде работало?
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Fish
Дата 19.7.2004, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



А где не работает-то?
PM MAIL   Вверх
katka
Дата 19.7.2004, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



в Нетскейпе не работает. ну, и в Мозиле тоже.. 8(
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Fish
Дата 19.7.2004, 10:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Все дело в onSubmit. Попробуй использовать onBlur в каждом поле. Чтобы он проверял до отправки данных.
PM MAIL   Вверх
Fish
Дата 19.7.2004, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Или прочитай вот это - [url]
http://devedge.netscape.com/library/manual...nt.html#1012961
[/url]
PM MAIL   Вверх
katka
Дата 19.7.2004, 11:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



Ох.. Это что же мне каждый раз ругаться на человека, если он решил оставить заполнение поля "на потом"? у меня в анкете довольно много полей будет, плохо.
Самое непонятное: если я эту функцию вешаю на онКлик по кнопке, а в ней насильно пишу vak_form.submit() — всё равно ничего не происходит. И никаких алертов, если форма пустая. Я вот думаю: может, я где глупость какую написала и не заметила? 8(

Всё равно, спасибо. Может, это и выход — если ничего другого не придумаю.
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
katka
Дата 19.7.2004, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



Почитала, спасибо.
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Fish
Дата 19.7.2004, 11:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Повесь это на onclick submit кнопки.
Код

function checkform(){
if(vak_form.password.value!=vak_form.password2.value){
window.alert("Повторный пароль не совпадает с первоначальным!");
return false;
}
else if(vak_form.password.value.length<6) {
window.alert("Длина пароля должна быть не менее шести символов!");
return false;
}
else if(vak_form.dp.value.length>255 || vak_form.password2.value.length>255) {
window.alert("Длина текста в одном из полей превышает 255 символов!");
return false;
}
else if(vak_form.fil.value=="" || vak_form.life.value=="") {
window.alert("Вы не заполнили одно из обязательных полей!");
return false;
}
else {
return result;
}

Добавлено @ 11:28
Сработает. Ой ошибку заметил.
Код

else {
return result;
}

а надо
Код

else {
return true;
}

PM MAIL   Вверх
katka
Дата 19.7.2004, 13:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



не-а. то же самое.
всё. я забила на это дело 8]
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Cheba
Дата 19.7.2004, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Я вообще-то только начал знакомиться с JavaScript, но всегда обращаюь к объектам предварительно отыскав их. Вот так.
Код
var vak_form = document.getElementById('vak_form');

Вообще-то в Мозилле (и в Нетскейпе) есть JavaScript Console, где отображаются все ошибки скрипта. Если бы мы знали что за ошибка возникает ее было бы гораздо проще исправить.
PM MAIL ICQ   Вверх
Fish
Дата 20.7.2004, 08:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 66
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Попробуй такой onClick
Код

onClick = "return checkform(vak_form)"

а в функции
Код

function checkform(vak_form){
......

}


т.е. явно укажи для какой формы относиться функция.
PM MAIL   Вверх
<Spawn>
Дата 20.7.2004, 08:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



Может попоробовать переделать доступ к элементам на document.getElementById, а доступ к свойствам через getAttribute?

Это сообщение отредактировал(а) <Spawn> - 20.7.2004, 08:08


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
katka
Дата 20.7.2004, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 164
Регистрация: 19.7.2004

Репутация: нет
Всего: 6



Cheba
Плохо я знакомилась с javascript и грубо обращалась к объектам. +) СПАСИБО. кажется, это помогает.
Действительно, обнаружила в мозилле js-консоль(!) 8) в ней было написано "vak_form is not defined". Когда "отыскала" vak_form, сказало "vak_form has no properties" ..
Ох, возможно это наглость с моей стороны, но.. вы не подскажете, как бы мне отыскать все объекты и их properties? чтобы всё было defined..
<Spawn>
мне нужно писать if( password.getAttribute("value") == password2.getAttribute("value") ) ... ? а как определить password как элемент формы?
--------------------
если с другом буду я, если с другом буду я, а медведь — без друга
PM MAIL WWW ICQ   Вверх
Cheba
Дата 20.7.2004, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pointless one
***


Профиль
Группа: Vingrad developer
Сообщений: 1777
Регистрация: 27.11.2003
Где: /dev/null

Репутация: 1
Всего: 62



Можно отыскивать их так же как и форму, тоесть через document.getElementById.
Можно попробовать доставать их через DOM.

Или можно воспользоваться готовым кодом smile.gif :
HTML
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="javascript">
function check_form(form) {
if (form.password.value != form.password2.value) {
alert('Passwords do not match!');
return false;
}
else
return true;
}
</script>
</head>

<body>
<form action="" method="post" name="vak_form" id="vak_form" onSubmit="return check_form(this)">
Password 1: <input name="password" type="text" id="password">
<br>
Password 2: <input name="password2" type="text" id="password2">
<br>
<input type="submit" name="Submit" value="Submit">
</form>
</body>
</html>

PM MAIL ICQ   Вверх
Sardar
Дата 20.7.2004, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Вот так будет работать:
Код
<script language="Javascript" type="text/javascript">
<!--
function checkform(){
var vak_form=document.getElementById("vak_form");
if(vak_form.elements["password"].value!=vak_form.elements["password2"].value){
  window.alert("Ïîâòîðíûé ïàðîëü íå ñîâïàäàåò ñ ïåðâîíà÷àëüíûì!");
  return false;
} else if(vak_form.elements["password"].value.length<6) {
  window.alert("Äëèíà ïàðîëÿ äîëæíà áûòü íå ìåíåå øåñòè ñèìâîëîâ!");
  return false;
} else if(vak_form.elements["dp"].value.length>255 || vak_form.elements["password2"].value.length>255) {
  window.alert("Äëèíà òåêñòà â îäíîì èç ïîëåé ïðåâûøàåò 255 ñèìâîëîâ!");
  return false;
} else if(vak_form.elements["fil"].value=="" || vak_form.elements["life"].value=="") {
  window.alert("Âû íå çàïîëíèëè îäíî èç îáÿçàòåëüíûõ ïîëåé!");
  return false;
}
return true;
}
//-->
</script>



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0561 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.