SO - 15522608

by Arun P Johny

HTML

<form id="signupForm">
    <input id="email"/><span id="invalid"></span>
    <br />
    <input type="submit" value="Test" />
</form>

JavaScript

$(document).ready(function() {
	// global vars
	var form = $("#signupForm");
	var email = $("#email");
	var email_error = $("#invalid");

	// On blur
	// userEmail.blur(validateEmail);

	// On Submitting
	form.submit(function() {
				validateEmail().done(function() {
							console.log("submit true");
							form[0].submit();
						}).fail(function() {
							console.log("submit false");
						});
				return false;
			});

	function validateEmail() {
		var deferred = jQuery.Deferred()

		// if it's NOT valid
		console.log("In email");
		var a = $("#email").val();
		var filter = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;

		if (email.val() == "") {
			email_error.html("Please enter your email ");
			deferred.reject();
		}
		// if it's valid email
		else if (filter.test(a) == false) {
			email_error.html("Please enter Valid email address");
			deferred.reject();
		} else if (filter.test(a) == true) {
			console.log("elseif");
			var baseUrl = '<?= base_url() ?>';

			setTimeout(function() {
						deferred.resolve();
					}, 200);

		}

		else {
			email_error.html(" ");
			deferred.resolve();
		}

		return deferred.promise();
	}
});