1

IE8 で jQuery 検証が起動しないという問題があります。他のすべてのブラウザは問題なく動作します。

ここにカットダウンの例を作成しました:

http://www.gilkes.me.uk/jqueryvalidation/index.html

IE9、Firefox などでは、いずれかのチェックボックスをオフにしてボタンを押すと、ツールチップの検証メッセージが表示されることがわかります。

IE8 では、検証は実行されません。どうしてこれなの?

フォームのマークアップ:

<form action="http://www.google.com" method="post">
<div style="margin-top: 50px; text-align: left; margin-left: 30px;">
    <ul>
        <li style="list-style: none;">
            <input class="checkbox" data-val="true" data-val-checkboxtrue="You must tick the box indicated." data-val-required="The QuestionAccepted field is required." id="Questions_0__QuestionAccepted" name="Questions[0].QuestionAccepted" type="checkbox" value="true" /><input name="Questions[0].QuestionAccepted" type="hidden" value="false" />
            <strong>Question 1.</strong>
            <input id="Questions_0__QuestionText" name="Questions[0].QuestionText" type="hidden" value="That you have been a United Kingdom resident for at least 6 out of the last 12 months." />
            <input id="Questions_0__ValidationMessage" name="Questions[0].ValidationMessage" type="hidden" value="Please confirm that you have read and understood " />
            <span class="field-validation-valid" data-valmsg-for="Questions[0].QuestionAccepted" data-valmsg-replace="true"></span></li>
        <li style="list-style: none; margin-top: 30px;">
            <input class="checkbox" data-val="true" data-val-checkboxtrue="You must tick the box indicated." data-val-required="The QuestionAccepted field is required." id="Questions_1__QuestionAccepted" name="Questions[1].QuestionAccepted" type="checkbox" value="true" /><input name="Questions[1].QuestionAccepted" type="hidden" value="false" />
            <strong>Question 2.</strong>
            <input id="Questions_1__QuestionText" name="Questions[1].QuestionText" type="hidden" value="That you are aged 74 or under." />
            <input id="Questions_1__ValidationMessage" name="Questions[1].ValidationMessage" type="hidden" value="That you are aged 74 or under." />
            <span class="field-validation-valid" data-valmsg-for="Questions[1].QuestionAccepted" data-valmsg-replace="true"></span></li>
    </ul>
    <p style="margin-top: 30px;">
        <button type="submit" id="Continue" class="button-continue">
            Buy Now
        </button>
    </p>
</div>
</form>

このスクリプトに問題がある可能性があると思います。この中の何かが IE8 で正しく動作していません:

<script type="text/javascript">
    jQuery.validator.unobtrusive.adapters.add("checkboxtrue", function (options) {
        if (options.element.tagName.toUpperCase() == "INPUT" && options.element.type.toUpperCase() == "CHECKBOX") {
            options.rules["required"] = true;
            if (options.message) {
                options.messages["required"] = options.message;
            }
        }
    });
</script>
4

2 に答える 2

1

私が使用していたバージョン (1.6) は jQuery の最新バージョンと互換性がないため、この問題はバージョン 1.9 の jQuery Validate を使用して修正されました。

jQuery Validation が IE7 + IE8 で機能しない

私は実際にその質問を読みましたが、jQuery Validateのバージョン1.9を使用していると確信していたので、それが私に当てはまるとは思いませんでした

于 2012-04-23T13:39:57.013 に答える
0

if送信時に IE に表示されるエラーに気付いていないので、最初のステートメントが返されていないと推測していtrueます。IE8でalert()どのような値を使用して持っているかを確認しoptions.element.tagNameてみましたか?options.element.type

于 2012-04-23T13:12:46.363 に答える