/* Check if html5 validation enabled */ function hasHtml5Validation () { return typeof document.createElement('input').checkValidity === 'function'; } var $form = $("form"); $form.find("input.save-and-next").click(function() { $form.find(":input").each(function() { //if(!$(this).checkValidity()) { if(!$(this)[0].checkValidity()) { $form.find("input[type='submit']").click(); return false; } }); });
When you select $(this) you get a collection of nodes, to access actual DOM properties you must select the numbered one such $(this)[0].
Or you can bind validation process to a form field such as:
form.find("input[type='text']").keyup(function() { if(!$(this)[0].checkValidity()) { form.find("input[type='submit']").click(); } });