2011-09-12 14 views
31

Próbuję użyć metody checkValidity().html5 formularz checkValidity() Metoda nie została znaleziona

http://html5test.com/ informuje, że moja przeglądarka (Chrome) obsługuje metodę checkValidity na poziomie formularza.

Jednak użycie jsfiddle http://jsfiddle.net/LcgnQ/2/ Próbowałem następujące fragmenty kodu HTML i JavaScript:

<form id="profileform" name="profileform"> 
    <input type="text" id="firstname" required> 
    <input type="button" id="testbutton" value="Test"> 
</form> 

$('#testbutton').bind('click',function(){ 

    try{ 
    alert($('#profileform').checkValidity()); 
    } 
    catch(err){alert('err='+err)}; 
}); 

Dostaję błąd: object has no method checkValidity()

Co robię źle?

Dzięki.

+0

Tutaj http://stackoverflow.com/questions/28979662/common-jquery-to-disable-submit-buttons-on-forms-after-html5-validation/36391754#36391754 możesz znaleźć moje bardziej ogólne "i kompletne rozwiązanie. – Petr

+0

możesz spróbować: 'document.getElementById (" profil "). CheckValidity()' – sept08

Odpowiedz

72

Spróbuj:

$('#profileform')[0].checkValidity() 

Po wybraniu $('#profileform') masz zbiór węzłów, aby uzyskać dostęp do rzeczywistych właściwości DOM należy wybrać pierwszy.

+0

świetnie, dzięki Robert – Journeyman

+2

@robertc Czy możesz wyjaśnić, dlaczego to działa, i dlaczego nie działa, aby wybrać element bezpośrednio? – xdumaine

+12

@roviuser Ponieważ '$ ('# profilform')' nie wybiera bezpośrednio elementu, wybiera obiekt jQuery, który zawiera (między innymi) element. – robertc

Powiązane problemy