JSFiddle - React, Tailwind, and code Playground
by Minko Gechev
HTML
<form novalidate>
<label for="email">Email</label><input type="email"/>
<input type="submit" value="Send" />
</form>
JavaScript
var input = $('input[type="email"]');
function sendForm() {
return $.post('http://google.bg/', { email: input.val() }).always(function () {
console.log(arguments);
});
}
function validate() {
var d = $.Deferred();
if (!(/[^@]+@[^.]+\.[a-z.]+/).test(input.val())) {
d.reject('Invalid email');
} else {
d.resolve();
}
return d.promise();
}
$('form').submit(function (e) {
validate().then(function () {
return sendForm();
}).done(function () {
alert('Success');
}).fail(function (error) {
alert('Fail ' + JSON.stringify(error));
});
return e.preventDefault();
});