2012-03-31 2 views
1

ajax 양식 전송과 함께 HTML5 양식 유효성 검사를 사용하고 싶습니다. 제출 양식을 prepend(), show() 또는 이와 유사한 것을 사용하여 다른 컨텐츠로 대체해야합니다.Opera가 preventDefault()를 사용하여 submit()에서 필드 검증을 실패합니다.

내가 제출 확인되었다() 및 검증() 기능이 함께했다 :

$("#form").submit(function(e){ 
    e.preventDefault(); 

    $.post('sendmail.php', { name: $("#form-field-name").val(), email: $("#form-field-email").val(), message: $("#form-field-message").val()}); 

    // now prepend the new "sucessfully sent" div 
}); 

e.preventDefault(); 오페라에서 양식 유효성 검사를 비활성화처럼, 파이어 폭스/크롬에서 완벽하게 잘 작동 보인다.

아이디어가 있으십니까? 이 jQuery/Opera 버그입니까, 아니면 다시 한 번 Opera가 제대로하고 나머지는 그렇지 않은가요?

예 : http://jsfiddle.net/gw3My/

답변

1

이 오페라의 특질 것으로 보인다. 어떤 브라우저가 맞는지 확실하지 않지만 this page은이 변종을 설명하고 this.checkValidity()을 사용하여 문제를 해결할 것을 제안합니다. 그것을 당신의 필요에 맞게 조정하십시오.

this page에 따르면,이 특질이 오페라에서 수정 될 예정 잘못 HTML5에서 클라이언트 측 유효성 검사 전에 해고 (12)

CORE-35849 제출 이벤트가 나는거야,

+0

덕분에 많이 형성 어쨌든 jQuery Tools Validator를 사용하되 IE를 포함한 모든 주요 브라우저에서 html5 검증 지원을 기다릴 수는 없습니다. – Wordpressor