Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.09.2008, 19:28
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

Проверка ввода в форму
Понимаю что вопрос ламерский...
Есть форма:
<form id="form1" name="form1" method="post" action="index.php">
	<input type="text" name="text1" />
	<input type="submit" name="Submit" value="Submit" />
</form>

Нужно сделать так, чтобы нажав на кнопку, проверялось значение поля и по окончании проверки, при положительном исходе происходила отправка. Вся сложность (для меня) заключается проблеме с "enter"ом. При нажатии его в поле ввода форма отправляется. как правильно привязать функцию проверки?
Ответить с цитированием
  #2 (permalink)  
Старый 22.09.2008, 22:13
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

greatilya, обрабатывать событие onsubmit (для формы) или onclick для кнопки submit; в обоих вариантах, в случае, если проверка не пройдет - возвращать false.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #3 (permalink)  
Старый 23.09.2008, 04:34
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

правильно я Вас понял?
<script>
function proverka()
{
if(document.getElementById("text1").value=="1111") return true; else return false;
}
</script>
<form id="form1" name="form1" method="post" action="index.php" onsubmit="proverka()">
    <input type="text" name="text1" id="text1" value="" />
    <input type="submit" name="Submit" value="Submit" />
</form>

Если да, тогда, вроде, не работает.... Форма отправляется без проверок...
Ответить с цитированием
  #4 (permalink)  
Старый 23.09.2008, 11:56
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

надо onsubmit="return proverka()"
Ответить с цитированием
  #5 (permalink)  
Старый 23.09.2008, 12:10
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от greatilya
правильно я Вас понял?
да, только, конечно в onsubmit, как уже отметил Snipe, нужен return (и конкретно false, чтобы форма не отправилась - этот false вернет (или не вернет) как раз функция proverka())

Только вот в самой функции proverka() else не нужен - поскольку есть вероятность return'a на первом этапе (true), то до второго return'a (false) мы и так не дойдем:

if (document.getElementById("text1").value == "1111") {
  return true;
}
return false;
__________________
Тонкости ECMAScript
Ответить с цитированием
  #6 (permalink)  
Старый 23.09.2008, 12:58
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

тогда уж
return (document.getElementById("text1").value == "1111");
Ответить с цитированием
  #7 (permalink)  
Старый 23.09.2008, 13:03
Кандидат Javascript-наук
Отправить личное сообщение для SunnyDay Посмотреть профиль Найти все сообщения от SunnyDay
 
Регистрация: 22.09.2008
Сообщений: 111

Но лучше всётаки проверять сервером, иначе хакнут... А лучше всего и тем, и тем)
Ответить с цитированием
  #8 (permalink)  
Старый 23.09.2008, 13:04
Аватар для greatilya
Интернет-турист
Отправить личное сообщение для greatilya Посмотреть профиль Найти все сообщения от greatilya
 
Регистрация: 01.08.2008
Сообщений: 516

огромное СПАСИБО! вот такая мелочь... Всем респект)
Ответить с цитированием
  #9 (permalink)  
Старый 23.09.2008, 14:11
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Сообщение от Snipe
тогда уж
Действий может быть больше одного. Вообще, наиболее рациональный способ, мне кажется - отсеивание всех false'ов и в конце - return true; (т.е. если какое-то условие не прошло - сразу return false, и нечего дальше интерпретатору анализировать).
__________________
Тонкости ECMAScript
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как узнать форму из скрипта sectus Общие вопросы Javascript 6 04.09.2008 13:24
Форма для ввода текста с расширенными функциями 0x22b Элементы интерфейса 0 01.09.2008 10:38
трабл с перехватом некоторых символов в поле ввода barbiturat Events/DOM/Window 5 28.08.2008 14:32
Проверка ввода логина и пароля Макс Элементы интерфейса 9 17.06.2008 18:42
Прошу помочь с проверкой формы ввода Гость Общие вопросы Javascript 2 08.03.2008 12:10