Вы должны использовать какой-нибудь плагин валидатора.Лично я использовал инструменты проверки формы jquery, и это прекрасно работает. Есть и другие.Проверьте это: http://flowplayer.org/tools/validator/
Я также использую созданный мной плагин, который примет форму и отправит ее через ajax, и есть некоторые, которые работают очень похоже на мой:
http://jquery.malsup.com/form/
Это один пример.Это позволяет вам создать форму в обычном html-формате, и она будет отправлять форму в URL-адрес действия формы, а также будет формировать значения форм так же, как браузер, если вы отправляете без ajax.Таким образом, независимо от того, к какому бэкэнд-скрипту вы добавляете поля формы, точно так же, как если бы вы не использовали ajax.
Поскольку это кажется слишком большой работой для вас, позвольте мне показать вам, как выглядит ваш код с и безit.
Без (посмотрите выше на ваши js).
Не предполагая, что ваша форма выглядит так (упрощенно)
<form method="POST" action="php/contact.php">
<label for="contact_name">Name</label>
<input name="contact_name" id="contact_name" />
<br />
<label for="contact_email">Email</label>
<input name="contact_email" id="contact_email" />
<br />
<label for="contact_phone">Phone</label>
<input name="contact_phone" id="contact_phone" />
<br />
<label for="contact_zip">Zip</label>
<input name="contact_zip" id="contact_zip" />
<br />
<label for="contact_best_time">Best time for Contact</label>
<input name="contact_best_time" id="contact_best_time" />
<br />
<label for="contact_message">Message:</label>
<input name="contact_message" id="contact_message" />
</form>
Теперь это, вероятно, похоже на то, как это выглядиткак сейчас без всего лишнего html для форматирования.
Если вы использовали как валидатор, так и валидатор формы ajax, вам вряд ли придется вносить какие-либо изменения.Позвольте мне показать их.
С формой валидатора и AJAX вы получите:
<form method="POST" action="php/contact.php" class="use-validator ajax-form">
<label for="contact_name">Name</label>
<input name="contact_name" id="contact_name" />
<br />
<label for="contact_email">Email</label>
<input name="contact_email" id="contact_email" type="email" required="required" />
<br />
<label for="contact_phone">Phone</label>
<input name="contact_phone" id="contact_phone" type="phone" />
<br />
<label for="contact_zip">Zip</label>
<input name="contact_zip" id="contact_zip" required="required" />
<br />
<label for="contact_best_time">Best time for Contact</label>
<input name="contact_best_time" id="contact_best_time" required="required" />
<br />
<label for="contact_message">Message:</label>
<textarea name="contact_message" id="contact_message" required="required"></textarea>
</form>
Тогда ваш js будет:
$.tools.validator.fn("[type=phone]", "Invalid phone number", function(input, value) {
var phoneRegEx = /^(1-?)?\s?(\([2-9]\d{2}\)|\s?-?[2-9]\d{2})-?\s?[2-9]\d{2}-?\d{4}$/
return value.test(phoneRegEx);
});
$("form.use-validator").validator();
$("form.ajax-form").ajaxForm({
success:function(){$('#contact-form').html("<div id='message'></div>");$('#message').html("<h3>Message Sent</h3>").append("<p>Thank you for contacting us. We'll be in touch. <br /><br />If you have any further questions, you can always email us at info@wirecrafters.com or call us at 800-924-9473</p>").hide().fadeIn(800,function(){$('#message').append("<img id='checkmark' src='images/submit2.png' />");});}});
});
И любой другойВалидаторы, которые вы делаете, вы можете использовать в других формах ..
И тогда вам могут потребоваться некоторые пользовательские сообщения об ошибках, но это все .. Вы можете удалить весь этот другой код js, который у вас есть.