2011-09-12 69 views
31

Tôi đang cố gắng sử dụng phương thức form checkValidity().html5 form checkValidity() phương thức không tìm thấy

http://html5test.com/ cho tôi biết rằng trình duyệt của tôi (Chrome) hỗ trợ phương thức checkValidity cấp biểu mẫu.

Tuy nhiên, sử dụng jsfiddle http://jsfiddle.net/LcgnQ/2/ Tôi đã cố gắng html sau và đoạn 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)}; 
}); 

tôi nhận được một lỗi: object has no method checkValidity()

Tôi đang làm gì sai?

Cảm ơn.

+0

Tại đây http://stackoverflow.com/questions/28979662/common-jquery-to-disable-submit-buttons-on-all-forms-after-html5-validation/36391754#36391754 bạn có thể tìm thấy nhiều hơn "chung chung của tôi "và giải pháp hoàn chỉnh. – Petr

+0

bạn có thể thử: 'document.getElementById (" profileform ") checkValidity()' – sept08

Trả lời

72

Hãy thử:

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

Khi bạn chọn $('#profileform') bạn sẽ có được một bộ sưu tập của các nút, để truy cập vào các thuộc tính DOM thực tế bạn phải chọn cái đầu tiên.

+0

tuyệt vời, nhờ Robert – Journeyman

+2

@robertc Bạn có thể giải thích lý do tại sao nó hoạt động, và tại sao nó không hoạt động để chọn phần tử trực tiếp? – xdumaine

+12

@roviuser Vì '$ ('# profileform')' không chọn phần tử trực tiếp, nó chọn một đối tượng jQuery chứa phần tử (trong số những thứ khác). – robertc

Các vấn đề liên quan