2011-09-12 2 views
31

Я пытаюсь использовать метод формы checkValidity().html5 форма checkValidity() метод не найден

http://html5test.com/ сообщает, что мой браузер (Chrome) поддерживает метод проверки уровня формы.

Однако, используя jsfiddle http://jsfiddle.net/LcgnQ/2/ Я попытался следующий HTML и 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)}; 
}); 

Я получаю сообщение об ошибке: object has no method checkValidity()

Что я делаю неправильно?

Спасибо.

+0

Здесь http://stackoverflow.com/questions/28979662/common-jquery-to-disable-submit-buttons-on-all-forms-after-html5-validation/36391754#36391754 вы можете найти мои более «общие» »и полное решение. – Petr

+0

вы можете попробовать: 'document.getElementById (" profileform "). CheckValidity()' – sept08

ответ

72

Try:

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

При выборе $('#profileform') вы получаете коллекцию узлов, чтобы получить доступ к DOM фактических свойств, которые вы должны выбрать первый.

+0

отлично, спасибо Robert – Journeyman

+2

@robertc Можете ли вы объяснить, почему это работает, и почему он не работает, чтобы напрямую выбрать элемент? – xdumaine

+12

@roviuser Поскольку '$ ('# profileform')' не выбирает элемент напрямую, он выбирает объект jQuery, который содержит (между прочим) элемент. – robertc