Функция submit () имеет обратный вызов? - PullRequest
4 голосов
/ 17 июня 2010

У меня есть этот код и форма загрузки файла, которая отправлена ​​в кадр:

setMyCookie('name','value_1');
$('.myform').submit();
setMyCookie('name','value_2');

Проблема: похоже, что браузеры Webkit обновляют «MyCookie» значением «value_2» перед отправкой формы или в тот момент, когда она отправляется, поэтому с ней отправляется неправильное значение cookie. Я хочу изменить значение файла cookie на значение «value_2» сразу после отправки формы, чтобы файл cookie был готов для другого запроса.

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

setMyCookie('name','value_1');
$('.myform').submit();
setTimeout(function(){setMyCookie('name',value_2);},100);

Спасибо.

Ответы [ 3 ]

3 голосов
/ 17 июня 2010

Нет. Отправка формы загружает совершенно новую страницу, которая обычно заканчивает текущий контекст выполнения для скрипта.

Исключение составляют случаи, когда вы отправляете форму во фрейм, и в этом случае происходит событие onload.

0 голосов
/ 17 июня 2010

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

0 голосов
/ 17 июня 2010

Да, вы можете. Смотри здесь.

...