У меня есть этот скрипт PHP-формы для контактов (как показано ниже), который я использовал до того, как я знаю, работает, НО, из-за этого я скрыл html-форму внутри нового jQuery-активированного div: ( <div class="toggle hidemail" id="drop-button" href=""> Email us here </div> <div class="hidden hiddenform">
), который переключается вверх и вниз, я не могу отправить форму вообще, форма при отправке предполагается, что он исчезнет, затем дайте пользователю сообщение с подтверждением (как показано в сценарии), но он ничего не делает, я не думаю, что кто-то знал бы, что здесь происходит, поэтому я могу снова запустить эту форму?
<?php $to = 'example@gmail.com'; $subject = 'Company Name'; $name = $_POST['name']; $email = $_POST['email']; $message = $_POST['message']; $body = <<<EMAIL Hello my name is $name. $message From $name my email address is $email EMAIL; if($name == '' || $email == '' || $message == "") { echo "<h5>Sorry, I think you missed bit....</h5>"; $error = true; } else { $error = false; mail("example@gmail.com", $name, $email, $message); echo "<h5>Thank you for getting in touch. I'll get back to you ASAP.</h5>"; } if($error == true): ?> <article id="contact-form"> <article id="load_area"> <form id="my-form"> <input type="text" name="name" placeholder="Name" /> <input type="text" name="email" placeholder="Email" /> <textarea name="message" placeholder="Message" /></textarea> <input type="button" class="submit_button" value="Send" name="send_button" /> </form> </article> </article> <?php endif; ?>
Вот HTML:
<div class="toggle hidemail" id="drop-button" href=""> Email us here </div> <div class="hidden hiddenform"> <article id="contact-form"> <article id="load_area"> <form id="my-form"> <input type="text" name="name" placeholder="Name" /> <input type="text" name="email" placeholder="Email" /> <textarea name="message" placeholder="Message" /></textarea> <input type="button" class="submit_button" value="Send" name="send_button" /> </form> </article> </article> </div> $(document).ready(function() { $(".submit_button").live("click", function() { $("#load_area").fadeOut('slow', function() { $("#load_area").fadeIn(); $.post("process.php", $("#my-form").serialize(), function(data) { $("#load_area").html(data); }) }); }) })
Попробуйте использовать
$(".submit_button").on("click", function(){
вместо '$(".submit_button").live("click", function(){
Из jQuery Docs:
Начиная с jQuery 1.7, метод .live () устарел
также попытайтесь использовать
$('#my-form').submit(function() { alert('Handler for .submit() called.'); return false; });
и установите действие в вашей html-форме так:
<form id="my-form" action="process.php">