2

手動で HTML5 フォーム検証を呼び出すに続いて、webshims を使用して、古いバージョンの IE で HTML5 のようなフォーム検証を提供しようとしました。

フォームの検証は機能しますが (必要なフィールドに対してエラーが表示されます)、関数 on の<form onsubmit="return verify(this);" >呼び出しは妨げられません。これが起こるのが合理的な期待であるかどうかはわかりません。

次に、フォールバックとして、verify() 関数にチェックを追加して、フォームが有効な場合にのみ続行するようにしました。このために、verify() function() に次のコードを追加しました。

function verify(theForm) {
    form = theForm;

    if (!form.checkValidity()) {
        return false;
    }

    /* continue with recaptcha processing */
}

テストするIE8の実際のバージョンがないため、IETesterでIE8を使用しています。Javascript のデバッグでは、フォームに checkValidity() が存在しないことが示唆されているようです。Webshim の目的であるため、フォームに checkValidity が存在する必要があるという合理的な期待があると思います。

HTMLヘッドの私の初期化コードは

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="/branding/js-webshim/minified/extras/modernizr-custom.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/modernizr/2.6.2/modernizr.min.js"></script>
<script src="/branding/js-webshim/minified/polyfiller.js"></script>
<script>
    $.webshims.polyfill('forms');
</script>

これは、文書化された方法にかなり近いものです。また、必須フィールドが欠落しているというエラーメッセージが表示されているため、webshims が部分的に動作しているようです。

http://jsfiddle.net/BqW9D/2/で何が起こっているかのデモを追加しましたが、IE8 または IE9 を使用して IETester で jsfiddle を実行できません。それはただの混乱です。

4

1 に答える 1