Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Гость от 01 Июля 2003, 09:43:49

Название: onsubmit=window.close()
Отправлено: Гость от 01 Июля 2003, 09:43:49
Коллеги!
 
Можете помочь? Проблема в следующем:
 
Вариант 1



bla-bla-bla

 
Вариант 2

bla-bla-bla

 
 
В обоих вариантах window.close() работает просто замечательно, а вот submit как раз наоборот, т.е. отправки данных формы не происходит.  
 
При этом вместо window.close() можно поставить alert(\'bla-bla-bla\').
Тогда в варианте 1 произойдет просто алерт, без сабмита, а в варианте 2 - сначала алерт, а уж потом - сабмит.
 
ЧТО Я ДЕЛАЮ НЕ ТАК
 
 
Заранее благодарен за помощь.
 
Al.
Название: onsubmit=window.close()
Отправлено: Alexandr от 01 Июля 2003, 13:34:38
По моему, не будет работать не один из вариантов.
Выход
 action="script.php"

script.php
------------------
mail(....)
?>
Название: onsubmit=window.close()
Отправлено: Гость от 01 Июля 2003, 16:11:22
СПАСИБО!

Понятно, что с CGI жизнь проще. Проблема в том, что людям установка такого сервера обходится в большую проблему. Поэтому хотелось бы все сделать на клиенте (который, как известно, всегда прав....)

Все равно спасибо.

Al.
Название: onsubmit=window.close()
Отправлено: Xander от 01 Июля 2003, 16:12:58
а если сделать задержку window.close через SetTimeOut?
Название: onsubmit=window.close()
Отправлено: Aku Aku от 01 Июля 2003, 16:29:30
Попробуй так

...
function doIt() {
document.myForm.submit();
window.close();
}

...



...

>а в варианте 2 - сначала алерт, а уж потом - сабмит.

Все верно. Окно закрылось и все. Какой потом сабмит.
Ничего уже нету. =)

А если алерт - то дальше идет сабмит как и должно быть
Название: onsubmit=window.close()
Отправлено: Гость от 01 Июля 2003, 16:55:12
>> Xander

Я думал об этом. Только какой таймаут устанавливать? Секунду? Пять? Такой таймаут - лишний повод для юзера потыкать мышкой в кнопочку, опять же.......

>> Aku Aku

Да, именно так оно и не работает. Причем странным образом игнорирует строку document.myForm.submit(); и посему-то с легкой совестью и довольной рожей переходит к window.close().

Зла не хватает, короче.

>=o|


Все равно спасибо за участие в моей несчастной судьбе...

Al.
Название: onsubmit=window.close()
Отправлено: Aku Aku от 01 Июля 2003, 18:01:56
А с чего видно что сабмит не сработал?
Попробуй адресовать его на какой-то скрипт, и увидишь что данные отправились.
:)
Название: onsubmit=window.close()
Отправлено: Гость от 02 Июля 2003, 20:12:02
>> Aku Aku

Пока что данные должны попасть на мой почтовый ящик. Поскольку он пуст, я делаю вывод, что сабмит не работает. К тому же при action=mailto во время сабмита выползают до 2 окон с разной пугающей информацией и кнопками ок и не-ок. Так что сабмит действительно не фурычит, зараза.

Al.
Название: Пример
Отправлено: Aku Aku от 03 Июля 2003, 09:46:55
Проведем эксперимент.

submitter.html








Создаешь произвольный файл test.html
В submitter.html вводишь строку в инпут и жмешь сабмит.

Результат:

submitter.html - закрывается
в новом окне открывается http://.../test.html?text=sometext

Вывод?
Название: onsubmit=window.close()
Отправлено: Гость от 06 Июля 2003, 00:22:37
Прошу прощенья, что давно не заглядывал сюда.

Нашел ответ на свой вопрос.

Цитирую:
"JavaScript 1.1: метод submit терпит неудачу без вывода сообщения об этом, если action формы это URL mailto:, news: или snews:. " (http://pyramidin.narod.ru/jscript/clientref13/form.htm)

То же справедливо и для всех последующих ДжаваСкриптов.

Так что пример с action="test.html" ...(глубокий вздох)... неуместен.

Спасибо за идеи всем!!!!

С уважением,

Al.