2013-04-09 2 views
0

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

Идея заключается в том, что когда пользователь дает свой адрес электронной почты, пока они не снижают этот флажок, их информация будет передаваться в обе формы. Как я мог это сделать? ОБРАЗЕЦ HTML:

 <form action="http://process.signupapp.com/" method="post" name="SimpleSignUp1"> 


     <input type="text" id="email" name="emailAddress"/> 
     <input type="submit" name="submit" value="submit" id="signup"> 

       <input name="sourceId" type="hidden" value="code123" /> 
       <input name="listCode" type="hidden" value="GGGG" />    
       <input name="email_page" type="hidden" value="lettername" /> 
       <input name="email_subject" type="hidden" value="Welcome Message" /> 

     </form> 

     <form action="http://process.signupapp.com/" method="post" name="SimpleSignUp"> 

       <input name="agree" type="checkbox" value="agree_terms" checked/> 
       <label for="agree">Yes, I would also like to receive the FREE cool  newsletter</label> 

<input type="submit" value="submit" /> 

<input name="sourceId" type="hidden" value="code2345" /> 
<input name="listCode" type="hidden" value="DDDD" /> 
<input name="email_page" type="hidden" value="anothername" /> 
<input name="email_subject" type="hidden" value="Welcome again" /> 

</form> 
+0

'до тех пор, пока они не снижают этот флажок' .. где находится флажок? Не могли бы вы добавить соответствующий HTML, показывающий 2 формы, а также флажок, пожалуйста? - «Как я могу это сделать?» Вы можете присоединить событие к своей кнопке отправки, чтобы предотвратить поведение по умолчанию и оценить ваше бизнес-правило. Исходя из этого вы вручную или отправляете все формы: '$ (" form "). Submit()' или только одна форма: '$ (" # specificFormId "). Submit()'/'$ (" form "). Eq (0) .submit() '. Было бы проще дать точный ответ, хотя если вы разместите соответствующий HTML-код. – Nope

+0

Это кажется простой проблемой, если вы можете опубликовать какой-то код, вы быстро получите ответ. – user1048676

+0

Простите, я добавил HTML, чтобы объяснить beter. – Epleroma

ответ

0

Вы можете вызвать событие отправки второй формы во время подачи первого. (Угадайте структуру html)

$('#form1').submit(function() { 
    if(! $(this).find('#checkbox').is(':checked')) { 
     $('#form2').submit(); //Will want to make this an ajax call 
    } 
} 

$('#form2').submit(function() { 
    $.ajax({ 
     data: $('#form2').serialize(), //Or specify yourself 
     url: $('#form2').attr('action'), 
     type: 'POST', 
    }); 
    return false; //Don't want to redirect in the middle of both submissions 
} 
+0

Не могли бы вы немного подробнее узнать, как это использовать? Я не знаю javascript. – Epleroma

+0

Вы регистрируете два обработчика событий, по одному для каждой формы. Когда отправляется первая форма, она проверяет, установлен ли флажок. Если это так, то он вызывает событие отправки во второй форме. Хотя, основываясь на вашей разметке, у вас есть обе формы, отправляемые на одно и то же место, почему бы не сэкономить время и сделать логику на сервере, а не размещать на том же месте дважды? – Schleis

+0

Спасибо за разъяснение; представление идет в стороннюю систему, поэтому я понятия не имею, как я буду разбираться с логикой там. – Epleroma

Смежные вопросы