Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Manually trigger html5 validation on button click

I am trying to handle form validation on button click. It is validating the form but not showing error. can anyone help me in this?

<form id="the-form" action="#">
    <input type="text" required="required" placeholder="Required text" />
    <input type="email" required="required" placeholder="email" />
    <button id="btn" type="button">Submit</button>
</form>

javascript:

$("#btn").on("click", function(){
    if($("#the-form")[0].checkValidity())
    {
        alert('validated');
    }
    else
    {
        //show errors
        return false;
    }
});

http://jsfiddle.net/5ycZz/

like image 991
Imran Rashid Avatar asked Sep 05 '13 10:09

Imran Rashid


2 Answers

Try

reportValidity()

So you'd have

$("#btn").on("click", function(){
    if($("#the-form")[0].checkValidity()) {
        alert('validated');
    }
    else {
        $("#the-form")[0].reportValidity();
    }
});
like image 83
Brian Davis Avatar answered Sep 28 '22 00:09

Brian Davis


I've achieved this by doing steps below:

1) I'm having form:

<form>
    <textarea required></textarea>
    <input type="submit" style="display:none;"/>
</form>

<a>Some other button to trigger event</a>

2) Now we have to check if the form is filled correctly:

//this is <a> click event:
if (!$('form')[0].checkValidity()) {
    $('form').find('input[type="submit"]').click();
    return false;
}

This will trigger form sending but won't send because there are errors ;)

It appears that html5 validation errors are displayed on input[type="submit"] click :)

Hope will work for You too! :)

like image 23
Mr.TK Avatar answered Sep 27 '22 22:09

Mr.TK