Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Проверка текстового поля формы (https://javascript.ru/forum/events/4190-proverka-tekstovogo-polya-formy.html)

Athlete 01.07.2009 13:22

Проверка текстового поля формы
 
<script language="javascript">

function validateForm() {if (document.form.beton==""){window.alert("Заполните шифр!");
														return false;}
														}
														return true;

  </script>


<form action="/SCRIPTS/ttn-1t.php" method="POST" name="form" onsubmit="return validateForm();">


Сделал по книжке проверку по нажатию кнопки submit текстового поля, не работает, подскажите, в чем ошибка?

Riim 01.07.2009 14:30

В расстановке скобок.

Athlete 01.07.2009 14:42

<script language="javascript">

function validateForm() {if (document.form.beton==""){window.alert("Заполните шифр!");
														return false;}
														return true;}

  </script>

Так тоже не работает.

Riim 01.07.2009 15:07

Что это?
Цитата:

Сообщение от Athlete
document.form.beton==""


greatilya 01.07.2009 15:59

function validateForm() 
{
if(document.form.beton.value=="")
{
   window.alert("Заполните шифр!");
   return false;
}
return true;
}

Либо к вашему полю с шифром бобавьте id="beton" и тогда так:
function validateForm() 
{
if(document.getElementById('beton').value=="")
{
   window.alert("Заполните шифр!");
   return false;
}
return true;
}

Athlete 01.07.2009 17:43

Цитата:

Сообщение от Riim (Сообщение 23331)
Что это?

Это название поля, которое как раз надо проверить пустое оно или нет

Riim 01.07.2009 18:14

Цитата:

Сообщение от Athlete
Это название поля, которое как раз надо проверить пустое оно или нет

Коллекцией form я никогда не пользовался, но вроде это не название поля, а название формы. Не мучайте себя и меня и пользуйтесь document.getElementById .

greatilya 02.07.2009 04:34

Вот это напишите:
<script language="javascript">
function validateForm() 
{
if(document.getElementById('beton').value=="")
{
   window.alert("Заполните шифр!");
   return false;
}
return true;
}
</script>
<form action="/SCRIPTS/ttn-1t.php" method="POST" name="form" onsubmit="return validateForm()">
Шифр: <input type="text" id="beton" value="" />
</form>

B~Vladi 02.07.2009 10:03

Цитата:

Сообщение от greatilya
onsubmit="return validateForm()"

Зачем вы даёте людям такие примеры?!
1. Это не валидно
2. Это не красиво
3. Легко решается

Они и в дальнейшем будут так писать ведь... Плохо заученый матерьял хуже незнаний.

greatilya 02.07.2009 10:08

а правильно так? Вся проблема в точке с запятой?
onsubmit="return validateForm();"

Не совсем вас понял..

B~Vladi 02.07.2009 10:11

Цитата:

Сообщение от greatilya
а правильно так? Вся проблема в точке с запятой?

Нет.
Правильно устанавливать обработчики программно:
document.form.form.onsubmit=function(){
   return validateForm();
}

А ещё лучше пользоваться методами DOM addEventListener и attachEvent.

greatilya 02.07.2009 10:17

Зачем так извращаться то? я понмаю что правильно, но человек пишет, явно новичок... Да и в принципе я всего пару раз так объявлял функции. Так что на вкус и цвет... сами знаете, приятелей нет.

B~Vladi 02.07.2009 10:24

ОК. Пусть пишет кто как хочет, я не против. Против валидатор.

Riim 02.07.2009 15:05

Цитата:

Сообщение от B~Vladi
Против валидатор.

Валидатор тоже не против.

B~Vladi 02.07.2009 15:38

Цитата:

Сообщение от Riim
Валидатор тоже не против.

:blink:
На что-то протиф на что-то нет.

Kolyaj 02.07.2009 15:46

Для валидных событий -- не против, очевидно :)

B~Vladi 02.07.2009 15:52

:) а что предпочтительней делать такие вещи программно, думаю, возражений ни у кого нет. Как говорится: мухи отдельно - котлеты отдельно.;)

Kolyaj 02.07.2009 15:54

Если у меня на сайте из JavaScript'а только проверка одного поля формы, то клал я на разделение JS и HTML.

B~Vladi 02.07.2009 16:00

лень id придумать?;)

Riim 02.07.2009 16:01

Цитата:

Сообщение от B~Vladi
мухи отдельно - котлеты отдельно

В большинстве случаев, так, но есть и исключения.

B~Vladi,
тут ты забываешь учесть один важный момент: когда цепляется событие onsubmit при разделении JS и HTML? При DOMContentLoaded или при onload? А если пользователь настолько знаком с сайтом, что заполнит форму (забыв что-нибудь) и отправит ее до наступления этих событий?

B~Vladi 02.07.2009 16:14

Цитата:

Сообщение от Riim
B~Vladi,
тут ты забываешь учесть один важный момент: когда цепляется событие onsubmit при разделении JS и HTML? При DOMContentLoaded или при onload? А если пользователь настолько знаком с сайтом, что заполнит форму (забыв что-нибудь) и отправит ее до наступления этих событий?

Да это может сначала показатся проблемой. Но есть два НО:
1. Любой нормальный сайт должен работать и без скриптов. Так же должны обрабатываться все возможные ошибки, чтоб не запороть весь функционал.
2. Скрипт можно распологать и под самой формой. Вероятность того, что пользователь нажмёт на кнопку раньше стремицо к нулю.

Только не нада на мя нападать сильно, ОК? Я уже писал своё мнение.
Цитата:

Сообщение от B~Vladi
Пусть пишет кто как хочет, я не против

Хочу ещё от себя немного добавить. Когда я вижу такие атрибуты мне сразу кажется что код "грязный". Да, бывает накладно повесить обработчик, но не невыполнимо. Я уже привык к таким приёмам и не чувствую никаких неудобств. Я считаю, что к такому подходу должен стремится каждый программист.

Riim 02.07.2009 16:26

Цитата:

Сообщение от B~Vladi
Любой нормальный сайт должен работать и без скриптов.

А твой сайт нормальный?

B~Vladi 02.07.2009 16:28

Цитата:

Сообщение от Riim
А твой сайт нормальный?

Сомнения?

У меня хоть консоль ошибок чистая;)

Riim 02.07.2009 16:48

Цитата:

Сообщение от B~Vladi
консоль ошибок чистая

А по-твоему, при отключенных скриптах она может быть не чистой?

B~Vladi 02.07.2009 17:04

Riim, блин ну чё за глупости?! Я писал, что сайт должен работать без скриптов - он работает, писал что ошибки нужно отлавливать - консоль чистая. Чем он не нормальный та?! Про окна и т.д. можно не лечить. Ваши мнения йа уже знаю;)

Riim 02.07.2009 18:08

На счет сайта я просто спросил, не утверждал.

Цитата:

Сообщение от B~Vladi
Я считаю, что к такому подходу должен стремится каждый программист.

Я считаю, что нужно к нему стремиться без фанатизма.

Цитата:

Сообщение от B~Vladi
Скрипт можно распологать и под самой формой. Вероятность того, что пользователь нажмёт на кнопку раньше стремицо к нулю.

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

Цитата:

Сообщение от B~Vladi
Любой нормальный сайт должен работать и без скриптов.

Частично согласен. Сайт должен (но не обязан) сохранять минимальную работоспособность и если не работает что-то, что можно заставить работать без скриптов и что не принципиально важно для работы сайта, то в большинстве случаев я пройду мимо, найдя что-либо поважнее.

Athlete 03.07.2009 07:51

Спасибо всем за ответы. Помогло! Я и в правду полный новичок в JavaScript, это фактически первые мои строчки кода.

x-yuri 04.07.2009 01:42

Цитата:

Сообщение от Kolyaj
Если у меня на сайте из JavaScript'а только проверка одного поля формы, то клал я на разделение JS и HTML.

+1 :agree:

B~Vladi 07.07.2009 08:35

Цитата:

Сообщение от Riim
Частично согласен.

Сдаёцо мне, ты реее-е-еедко когда соглашаешся с чем-либо полностью;)

paraplanka 29.10.2015 11:22

method="POST" а надо method="GET" в джаве Вы делаете обработку запроса GET и будет Вам грамота

paraplanka 29.10.2015 11:24

method="GET"


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