Есть ли опция "после отправки" jQuery? - PullRequest
43 голосов
/ 02 марта 2011

У меня есть форма, которая загружает файл и предназначается для iframe на странице.Когда пользователь нажимает кнопку «Отправить», я хочу, чтобы содержимое файла «очистилось».

Я пробовал это

$('#imageaddform').submit(function(){
    $('#imagefile').val('');
});

Но он очищает форму перед отправкой, поэтому ничего не загружается.

Как очистить после отправки?

Ответы [ 4 ]

37 голосов
/ 02 марта 2011

Если у вас нет других связанных обработчиков, вы можете сделать что-то вроде этого:

$('#imageaddform').submit(function(e) {
    e.preventDefault(); // don't submit multiple times
    this.submit(); // use the native submit method of the form element
    $('#imagefile').val(''); // blank the input
});
25 голосов
/ 06 ноября 2011

Решение Lonesomeday сработало для меня, но для Google Chrome я обнаружил, что оно по-прежнему будет отправлять пустые данные формы, если я не добавлю время ожидания, как это:

4 голосов
/ 02 марта 2011

Вы можете сделать что-то вроде этого:

$('#imageaddform').submit(function(){
  setTimeout(function() {
    $('#imagefile').val('');
  },100);
});
2 голосов
/ 02 марта 2011

Как вы отправляете форму? если это обычная форма публикации, то тогда страница не будет существовать в этом случае, мне интересно, хотите ли вы очистить форму перед обновлением страницы, чтобы, когда пользователь возвращается, он не видел заполненные значения.

Если форма отправлена ​​ajax, вы можете

function(){
 $('form1')[0].submit();
 clearForm();
}

Я пропустил вопрос?

...