Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

как застопить сабмит

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов
Предыдущая тема :: Следующая тема  
Автор Сообщение
Usver



Зарегистрирован: 17.06.2004
Сообщения: 81
Откуда: Tula

СообщениеДобавлено: Пн Янв 24 2005 13:37    Заголовок сообщения: как застопить сабмит Ответить с цитатой

Всем здравствуйте, вопрос конечно глупый до идиотизма, но почему-то найти ответ никак не получается...был бы презнателен еслибы кто-нить подсказал как остановить сабмит формы после проверки введенных данный на корректность средствами VBScript

Function Check_dates
Check_dates = False
MsgBox "BINGO"
END function

<FORM name="DATE_SELECT" method="post" action="avg_plastic.asp" onSubmit="Check_dates">
<input type="submit" name="sumbit_button" />
</FORM>

вот при таком подходе после нажатия сабмитбаттона все равно ломиться на avg_plastic.asp
еще раз приношу извинения за "заезженность темы"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Пн Янв 24 2005 15:39    Заголовок сообщения: Ответить с цитатой

в ВБ скрипте не силён, но по-моему упущено два момента:
1. всё верно, нужно использовать событие onsubmit, но в твоём исполнении в событии просто вызывается ф-ия, и в случае удачной и неудачной проверки событие всё равно происходит. для того что бы прервать событие необходимо вернуть false
onsubmit = "return Check_dates"

2. скорее наверное даже не момент, а моё не понимание языка. в JS ф-ия бы выглядела так:
function Check_dates() {
alert('BINGO');
return false;
}
наверное в ВБ для возврата значения используется конструкция вида Check_dates = False , если так, то в самой ф-ии всё верно.
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Вт Янв 25 2005 09:31    Заголовок сообщения: Ответить с цитатой

можно повесить сабмин на обычную кнопку, а не на тип сабмит.
В функции напишешь сначала проверку, а потом форма.сабмит().
Сабмит можно повесить и на ссылку обычную.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Вт Янв 25 2005 09:36    Заголовок сообщения: Ответить с цитатой

onClick="if (your_function()) your_form.submit();"
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
epros
Гость





СообщениеДобавлено: Вт Янв 25 2005 09:55    Заголовок сообщения: Ответить с цитатой

fLamer писал(а):
можно повесить сабмин на обычную кнопку, а не на тип сабмит.

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



Зарегистрирован: 17.06.2004
Сообщения: 81
Откуда: Tula

СообщениеДобавлено: Вт Янв 25 2005 11:31    Заголовок сообщения: Ответить с цитатой

2 epros
тогда интересен Ваш вариант обработки сабмита для вышеуказанной ситуации???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Вт Янв 25 2005 11:38    Заголовок сообщения: Ответить с цитатой

in JavaScript:
Код:

<script>
function cehck(a) {
  if (a.oblaka != 'sinie') return false;
  return true;
}
</script>
<form ... onsubmit="return check(this);">
  <input type=text name=oblaka>
  ...
</form>

_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Usver



Зарегистрирован: 17.06.2004
Сообщения: 81
Откуда: Tula

СообщениеДобавлено: Вт Янв 25 2005 11:41    Заголовок сообщения: Moby Ответить с цитатой

а на VB???
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Вт Янв 25 2005 11:48    Заголовок сообщения: Ответить с цитатой

Пологаю что так:
Код:

<script language="vbscript">
function cehck(a) 
  if (a.oblaka != 'sinie') check=false;
  check=true;
end function
</script>
<form ... onsubmit="return check(this);">
  <input type=text name=oblaka>
  ...
</form>


а почему именно на ВБ? чем те ява не катит?
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Usver



Зарегистрирован: 17.06.2004
Сообщения: 81
Откуда: Tula

СообщениеДобавлено: Вт Янв 25 2005 12:05    Заголовок сообщения: Ответить с цитатой

Потому что "Профи - это оборзевший ламмер"(c) Smile)))))))
Полный текст странички
!!!!!!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META http-equiv="pragma" content="no-cache" />
<META http-equiv="cache-control" content="no-cache" />
<title></title>
<script language="vbscript">
function cehck(a)
if (a.oblaka != 'sinie') check=false;
check=true;
end function
</script>
<BODY>
<form name="FORM1" action="NE_LAZIT.ASP"onsubmit="return check(this);">
<input type=text name=oblaka>
</form>
</BODY>
</HTML>
!!!!!!
в input вводится "Zxczxv" в результате
ie по прежнему лезет на NE_LAZIT.ASP по нажатию сабмит ПОЧЕМУ?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Вт Янв 25 2005 12:42    Заголовок сообщения: Ответить с цитатой

наверное потому что там нада поубирать точку с запятой из скрипты, в вб они кажись лишние
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Usver



Зарегистрирован: 17.06.2004
Сообщения: 81
Откуда: Tula

СообщениеДобавлено: Вт Янв 25 2005 12:44    Заголовок сообщения: Ответить с цитатой

Всем заинтересованным в окончании этой эпопеи: обработчик по умолчанию типа<имя формы>_<OnSubmit> отрабатывает нормально(в отличии от обработчика на событие формы onSubmit назначенного руками), если кто объяснит почему было бы здорово
ТЕКСТ РАБОЧЕЙ СТРАНИЧКИ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<META http-equiv="pragma" content="no-cache" />
<META http-equiv="cache-control" content="no-cache" />
<title></title>
<script language="VBScript">
Function FORM1_OnSubmit
FORM1_OnSubmit = (1 > 2)
END function

</script>
<BODY>
<form name="FORM1" action="NE_LAZIT.ASP">
<input type="submit" name="sumbit_button" value="Запустить на сервер"/>
</form>
</BODY>
</HTML>
При такой реализации форма не будет ломиться на NE_LAZIT.ASP по нажатию сабмита.
Всем спасибо Razz
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
epros
Гость





СообщениеДобавлено: Вт Янв 25 2005 16:05    Заголовок сообщения: Ответить с цитатой

Usver писал(а):
тогда интересен Ваш вариант обработки сабмита для вышеуказанной ситуации???

В первую очередь, как правильно было замечено, ИЗ onsubmit'а нужно возвращать логическую переменную со значением false. Синтаксис с return, за которым следует вызов функции, для JS является правильным. Для VBS - не берусь утверждать, но полагаю, что тоже.
Usver писал(а):
...
<form name="FORM1" action="NE_LAZIT.ASP"onsubmit="return check(this);">
...
ie по прежнему лезет на NE_LAZIT.ASP по нажатию сабмит ПОЧЕМУ?

Предполагаю, что здесь все дело в отсутствии пробела перед onsubmit Smile

Для Moby: Точки с запятой - для JS не обязательны, но характеризуют стиль программирования в лучшую сторону. Поскольку к их отсутствию легко привыкнуть, а при переходе на другой язык (скажем, если параллельно пишутся серверные скрипты) будете постоянно путаться.
Вернуться к началу
fLamer



Зарегистрирован: 05.04.2004
Сообщения: 462
Откуда: Тула

СообщениеДобавлено: Чт Янв 27 2005 12:25    Заголовок сообщения: Ответить с цитатой

epros писал(а):
fLamer писал(а):
можно повесить сабмин на обычную кнопку, а не на тип сабмит.

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

Если отключены скрипты(!), то проверка введённой информации тоже не будет работать. Как критикующие скрипты делают проверку формы перед отправкой?
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
epros
Гость





СообщениеДобавлено: Чт Янв 27 2005 12:40    Заголовок сообщения: Ответить с цитатой

fLamer писал(а):
Если отключены скрипты(!), то проверка введённой информации тоже не будет работать. Как критикующие скрипты делают проверку формы перед отправкой?

На сей счет существует сервер, на котором можно реализовать любую проверку независимо от настроек клиента. Проверка на клиенте полезна с точки зрения того, чтобы не грузить сервер кучей некорректных запросов, но на нее нельзя слишком полагаться.
Вернуться к началу
Moby



Зарегистрирован: 19.11.2004
Сообщения: 268

СообщениеДобавлено: Чт Янв 27 2005 15:33    Заголовок сообщения: Ответить с цитатой

не грузить сервер это конечно да, но ещё одно применение клиентской проверки - это не заставлять ждать перегрузки и вывода сообщения об ошибки клиента, если он вдруг забыл указать какое то поля, или указал его не верно... тут как тут умный яваскрипт предупредит его об этом без лишнего обращения к серверу Wink
_________________
Профи - это оборзевший ламмер
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Создание веб-сайтов Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...