2013-09-05 9 views
6

Próbuję obsługiwać sprawdzania formularza na kliknięcie przycisku. Sprawdza poprawność formularza, ale nie pokazuje błędu. Czy ktoś może mi w tym pomóc?Ręczne wyzwalanie sprawdzania poprawności html5 na przycisku kliknij

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

Odpowiedz

3

mam to osiągnąć, wykonując poniższe kroki:

1) Mam formularz:

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

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

2) Teraz musimy sprawdzić, czy forma jest wypełniony poprawnie:

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

Spowoduje to formularz wysyłania ale nie wyśle, bo są błędy;)

Wydaje się, że błędy walidacji HTML5 są wyświetlane na wejściu [type = "submit"] kliknij :)

Nadzieja będzie pracować dla Ciebie! :)

0

Usuń oświadczenie innego. (Aktualizacja)

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

nie chcę pokazać błędy w pogotowiu należy pokazać błąd w bootstrap popover co jest domyślne zachowanie html5 –

+0

@ImranRashid Widzę. Usuń instrukcję "else": else { // Pokaż błędy alert ("nie zatwierdzono"); } – Elmer

+0

sprawdź na http://jsfiddle.net/5ycZz/ .. jeśli zmienię typ przycisku, aby przesłać go działa, w przeciwnym razie nie wyświetla się msg –

3

tutaj jest doskonałą odpowiedzią

<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

Powinieneś być w stanie po prostu dodać onclick = "return validateForm()".

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

Spróbuj

reportValidity() 

więc musiałbyś

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

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

Powiązane problemy