Я ПРОСТО РЕАЛИЗОВАЛ: вы используете, нажмите не отправлять:
it should be : $("#email_form").submit(function(e){});
not: $("#email_form").click(function(e){});
функция должна быть объявлена вне dom ready! Кроме того, если вы в качестве первого шага поставите «Предотвратить дефолт», оно не будет отправлено даже с ошибкой!
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
if( !emailReg.test( $email ) ) {
return false;
} else {
return true;
}
}
$(document).ready( function () {
$("#email_box").click( function () { $(this).val(''); } );
$("#email_form").submit(function(e){
e.preventDefault();
var valid = validateEmail($("#email_box").val());
if (!valid)
{
$("#error_msg").fadeIn("slow");
} else {
$("#error_msg").style("display", "none");
$("#email_box").val("Thanks, you'll hear from us soon!").fadeIn("slow");
//$("#thank_you_msg").fadeIn("slow");
}
return false;
});
});
Должна быть ошибка javascript, или она вообще не связывает событие, убедитесь, что у вас есть html:
<form id='email_form' ></form>
- Убедитесь, что у вас есть форма с id = "email_form", иногда вы можете ошибиться и поместить атрибут класса или имени, так как форма с идентификаторами полезна только в javascript, у нас нет привычки идентифицировать их,
- Попробуйте вернуть false; вместо e.preventDefault (); Я не уверен, что это работает для форм
- Использовать событие готовности DOM:
$(function(){/*code*/});
- Убедитесь, что в jQuery нет ошибок, например, в старых версиях jQuery есть ошибки в IE. убедитесь, что браузер не закрывает ваш код из-за ошибки!
- если вы используете другие библиотеки или спинеты, которые влияют на
$
var, используйте jQuery("#email_form").submit();
вместо $