Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
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
еще раз приношу извинения за "заезженность темы" |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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 , если так, то в самой ф-ии всё верно. _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
fLamer
Зарегистрирован: 05.04.2004 Сообщения: 462 Откуда: Тула
|
Добавлено: Вт Янв 25 2005 09:31 Заголовок сообщения: |
|
|
можно повесить сабмин на обычную кнопку, а не на тип сабмит.
В функции напишешь сначала проверку, а потом форма.сабмит().
Сабмит можно повесить и на ссылку обычную. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
fLamer
Зарегистрирован: 05.04.2004 Сообщения: 462 Откуда: Тула
|
Добавлено: Вт Янв 25 2005 09:36 Заголовок сообщения: |
|
|
onClick="if (your_function()) your_form.submit();" |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
epros Гость
|
Добавлено: Вт Янв 25 2005 09:55 Заголовок сообщения: |
|
|
fLamer писал(а): | можно повесить сабмин на обычную кнопку, а не на тип сабмит. |
Этот способ справедливо критикуют за то, что если на клиенте отключены скрипты (а так бывает), то на нажатие кнопки вообще не будет никакой реакции (что может породить непонимание некоторых неопытных юзеров). Если же использовать кнопку сабмит, то при отключенных скриптах на сервер что-то отправится, а уж сервер, в крайнем случае, может среагировать, если что-то там неправильно. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Usver
Зарегистрирован: 17.06.2004 Сообщения: 81 Откуда: Tula
|
Добавлено: Вт Янв 25 2005 11:31 Заголовок сообщения: |
|
|
2 epros
тогда интересен Ваш вариант обработки сабмита для вышеуказанной ситуации??? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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>
|
_________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Usver
Зарегистрирован: 17.06.2004 Сообщения: 81 Откуда: Tula
|
Добавлено: Вт Янв 25 2005 11:41 Заголовок сообщения: Moby |
|
|
а на VB??? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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>
|
а почему именно на ВБ? чем те ява не катит? _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Usver
Зарегистрирован: 17.06.2004 Сообщения: 81 Откуда: Tula
|
Добавлено: Вт Янв 25 2005 12:05 Заголовок сообщения: |
|
|
Потому что "Профи - это оборзевший ламмер"(c) )))))))
Полный текст странички
!!!!!!
<!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 по нажатию сабмит ПОЧЕМУ? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Вт Янв 25 2005 12:42 Заголовок сообщения: |
|
|
наверное потому что там нада поубирать точку с запятой из скрипты, в вб они кажись лишние _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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](images/smiles/icon_razz.gif) |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
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
Для Moby: Точки с запятой - для JS не обязательны, но характеризуют стиль программирования в лучшую сторону. Поскольку к их отсутствию легко привыкнуть, а при переходе на другой язык (скажем, если параллельно пишутся серверные скрипты) будете постоянно путаться. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
fLamer
Зарегистрирован: 05.04.2004 Сообщения: 462 Откуда: Тула
|
Добавлено: Чт Янв 27 2005 12:25 Заголовок сообщения: |
|
|
epros писал(а): | fLamer писал(а): | можно повесить сабмин на обычную кнопку, а не на тип сабмит. |
Этот способ справедливо критикуют за то, что если на клиенте отключены скрипты (а так бывает), то на нажатие кнопки вообще не будет никакой реакции (что может породить непонимание некоторых неопытных юзеров). Если же использовать кнопку сабмит, то при отключенных скриптах на сервер что-то отправится, а уж сервер, в крайнем случае, может среагировать, если что-то там неправильно. |
Если отключены скрипты(!), то проверка введённой информации тоже не будет работать. Как критикующие скрипты делают проверку формы перед отправкой? |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
epros Гость
|
Добавлено: Чт Янв 27 2005 12:40 Заголовок сообщения: |
|
|
fLamer писал(а): | Если отключены скрипты(!), то проверка введённой информации тоже не будет работать. Как критикующие скрипты делают проверку формы перед отправкой? |
На сей счет существует сервер, на котором можно реализовать любую проверку независимо от настроек клиента. Проверка на клиенте полезна с точки зрения того, чтобы не грузить сервер кучей некорректных запросов, но на нее нельзя слишком полагаться. |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
Moby
Зарегистрирован: 19.11.2004 Сообщения: 268
|
Добавлено: Чт Янв 27 2005 15:33 Заголовок сообщения: |
|
|
не грузить сервер это конечно да, но ещё одно применение клиентской проверки - это не заставлять ждать перегрузки и вывода сообщения об ошибки клиента, если он вдруг забыл указать какое то поля, или указал его не верно... тут как тут умный яваскрипт предупредит его об этом без лишнего обращения к серверу ![Wink](images/smiles/icon_wink.gif) _________________ Профи - это оборзевший ламмер |
|
Вернуться к началу |
|
![](templates/subSilver/images/spacer.gif) |
|