2013-09-05 21 views
6

Ich versuche, Formularvalidierung auf Tastenklick zu handhaben. Es validiert das Formular, zeigt jedoch keinen Fehler an. kann mir jemand dabei helfen?manuell Auslöser html5 Validierung auf die Schaltfläche klicken

<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/

Antwort

3

Ich habe diese Schritte, indem Sie erreicht unter:

1) Ich habe Form:

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

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

2) Nun müssen wir überprüfen, ob das Formular korrekt ausgefüllt:

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

Dies wird das senden auslösen Form aber nicht senden, weil es Fehler gibt;)

Es scheint, dass html5 Validierungsfehler bei der Eingabe angezeigt werden [type = "submit"] klicken :)

Hoffnung wird auch für Sie arbeiten! :)

0

Entfernen Sie die else-Anweisung. (Update)

$("#btn").on("click", function(){ 
if($("#the-form")[0].checkValidity()) 
{ 
    alert('validated'); //will appear if name and email are of valid formats 
} 
}); 
+0

haben würde ich möchte nicht Fehler in Alarm zeigen, es Fehler in Bootstrap popover zeigen sollte, das Standardverhalten von html5 ist –

+0

@ImranRashid Aha. Entfernen Sie die 'else' Anweisung: else { // show errors Warnung ('nicht validiert'); } – Elmer

+0

Prüfung auf http://jsfiddle.net/5ycZz/ .. wenn i Knopf es funktioniert es sonst –

3

hier ist die perfekte Antwort

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

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

});

-1

sollten Sie in der Lage sein, einfach hinzufügen Onclick = "return validateForm()".

<button id="btn" onclick="return validateForm()" type="button">Submit</button> 
4

Versuchen

reportValidity() 

So Sie

$("#btn").on("click", function(){ 
    if($("#the-form")[0].checkValidity()) { 
     alert('validated'); 
    } 
    else { 
     $("#the-form")[0].reportValidity(); 
    } 
}); 
+0

perfekt! https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement/reportValidity – WayFarer