2013-03-14 4 views
0

Я отправляю две формы одновременно, но в моем скрипте есть ошибка. Я исследовал ошибку - Uncaught TypeError: свойство 'submit' объекта # не является функцией. Они сказали мне, чтобы добавить кнопку отправки, но есть кнопка представить уже здесь моя формаphp - отправка двух форм одновременно на две разные страницы

<form name="form1" id="form1" method="post" action="page1.php"> 
    <input type="hidden" name="pt" id="pt" value="<?=$b64string?>" style="width:800px; padding: 10px;"> 
    <input type="submit" value="submit" name="submit"/> 
</form> 
<form name="form2" id="form2" method="post" action="page2.php"> 
    <input type="hidden" name="signature" value="<?=$_sign?>"/> 

    <input type="submit" value="submit" name="submit"> 
</form> 
<span onclick="submitBoth();" style="cursor:pointer;"><img src="image1.png"></span> 

Вот мой JQuery:

jQuery.post("form2.php", jQuery("#form2").serialize(), function(data){ 
    if(data.trim()=='valid'){ 
     document.form1.submit(); 
    } 
}); 
+0

формы элементы должны быть в форме, чтобы считать его частью. Я никогда не пробовал этого, но попробую поместить скрытую подпись внутри каждой формы. –

+3

Используйте '$ (" # form1 "). Trigger ('submit');' вместо 'document.form1.submit()'; –

+0

hi @RickCalder это не сработало, я попробовал добавить '' form2 представляет, но форма не получала никаких ошибок после. – Kiel

ответ

0

вы используете «Form2» в качестве URL-представления, это правильно ?

jQuery.post("form2", jQuery("#form2").serialize() ... etc

первые пары из jqery.post должны быть URL.

+0

жаль, что это была опечатка, которую я отредактировал, прежде чем размещать ее здесь. Должно быть form2.php – Kiel

+0

, так почему бы просто не использовать smth, как это? 'jQuery.post (" form2.php ", jQuery (" # form2 "). Serialize(), function (data) { // Вы уверены, что ответ будет строкой, правильно? if (data. trim() == 'valid') { jQuery.post ("form1.php", jQuery ("# ​​form1"). serialize(), function (data) { // todo: postprocess form1.php responce }) } }); ' –

+0

Я пробовал это некоторое время назад, но на другом сервере есть ограничения, и я думаю, что они не принимают сообщения ajax с других сайтов. Я передаю формы на разные страницы и разные хосты. – Kiel

0

так почему бы просто не использовать smth, как это?

jQuery.post("form2.php", jQuery("#form2").serialize(), function(data){ 
    // you sure, that response will be a string, right? 
    if(data.trim()=='valid'){ 
     jQuery.post("form1.php", jQuery("#form1").serialize(), function(data){ 
    // todo: postprocess form1.php responce 
    }); 
    } 
}); 

и извините за предыдущий комментарий разметки

0

я получил эту работу, используя идею N.B, но я изменил его, вызывая кнопку отправки jQuery('#submit1').trigger('click'); спасибо!

0

Вы можете использовать этот

function submitBoth(){ 
    $.post('form1.php',$('form[name=form1]').serializeArray(),function(){ 
      $('form[name=form2]').submit(); 
    }); 
} 
Смежные вопросы