2013-07-02 2 views
1

Я работал с часами на этом с небольшой радостью. Я новичок в jQuery. При отправке формы я хочу остановить обработку формы, загрузить внешний файл, а затем обработать форму. Все работает отдельно от окончательной строки представления формы. Может кто-то указать мне в правильном направлении.Остановка формы отправки, функция jQuery, затем отправьте форму

<script type="text/javascript"> 
    $("#form1").on('submit', function(e) { 
     e.preventDefault(); 
     $("#a").load("saveData.php"); 
     $('#form1').submit(); 
    }); 
</script> 
+0

Что это внешний файл делать? От этого зависит его форма? –

ответ

0
$("#form1").on('submit', function (e) { 
    e.preventDefault(); 
    var $this = this; 
    $("#a").load("saveData.php", function(){ 
     $this.submit(); //assuming you want to submit the form after you have loaded the file 
    }); 
}); 
0

У вас есть бесконечный цикл, так как отправка формы снова вызывает обработчик представить.

Просто оставьте e.preventDefault();. Когда обработчик вернется, произойдет обычная подача формы.

+0

Если я выберу e.preventDefault(); форма отправляется нормально, но не загружает внешний файл. – user2540592

+0

Когда вы отправляете форму, страница заменяется тем, что возвращается сервером. Если вы не хотите этого делать, вы должны использовать AJAX вместо обычной подачи формы. – Barmar

+0

Возможно, вас заинтересует этот плагин: http://malsup.com/jquery/form/ – Barmar

1

Вам нужно

$("#form1").on('submit', function (e) { 
    e.preventDefault(); 
    var form = this; 
    $("#a").load("saveData.php", function(){ 
     form.submit(); // we need to use a non jQuery form reference here to prevent recursive submit calls 
    }); 
}); 
Смежные вопросы