Во-первых, пожалуйста, убедитесь, что вы делаете все свои проверки на стороне сервера. Мне нравится, когда мои формы работают без какого-либо JavaScript. Я предполагаю, что вы сделали так много.
**** ОРИГИНАЛЬНЫЙ ОТВЕТ ***
Затем измените свой элемент submit на элемент button. На OnClick элемента button, запустите функцию JavaScript, которая проверяет. Много примеров того, как это сделать, как вы знаете.
Если проверка не пройдена, отправьте оповещения. Если это успешно, используйте JavaScript для отправки формы.
**** NEW, ИНСТРУМЕНТ С ИСПОЛЬЗОВАНИЕМ ОТВЕТА ***
Вы также можете использовать JQuery как (orip указывает), и это плагины, чтобы сделать это. Они выполняют большую часть тяжелой работы. Пожалуйста, убедитесь, что мои комментарии рассказывают правильную историю. этот код также отправляет AJAX.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<!-- Load JQuery on your page -->
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!-- Load JQuery validation sytles and (rules?) on your page -->
<link rel="stylesheet" href="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.css" type="text/css" media="screen" />
<!-- Load JQuery validation plugin on your page -->
<script type="text/javascript" src="http://dev.jquery.com/view/trunk/plugins/validate/jquery.validate.js"></script>
<!-- Load JQuery form plugin on your page -->
<script type="text/javascript" src="http://jqueryjs.googlecode.com/svn/trunk/plugins/form/jquery.form.js"></script>
<script type="text/javascript" language="javascript">
//Wait until the document is loaded, then call the validation. Due to magic in JQuery or the plugin
// this only happens when the form is submitted.
$(document).ready(function(){
//When the submit button is clicked
$("#signup").click(function() {
//if the form is valid according to the fules
if ($("#newsletterform").valid()) {
//Submit the form via AJAX
$('#newsletterform').ajaxForm(function() {
//this alert lets me know the submission was successfull
alert("Thank you!"); });
}
})
});
</script>
<!-- Just some styles -->
<style type="text/css">
* { font-family: Verdana; font-size: 96%; }
label { width: 10em; float: left; }
label.error { float: none; color: red; padding-left: .5em; vertical-align: top; }
p { clear: both; }
.submit { margin-left: 12em; }
em { font-weight: bold; padding-right: 1em; vertical-align: top; }
</style>
</head>
<body>
<form action="" id="newsletterform" method="get">
<!-- The classes assigned here are where the validation rules come fome.
This is required, and it must be an email -->
<input type="text" name="email" class="required email" id="textnewsletter" />
<input type="submit" id="signup" />
</form>
</body>
</html>
Это не самый трудный код, который вы могли бы написать, но он послужит примером.