0

ここでは、すべての必須フィールドが入力されるまでフォームの送信を制限するためのソリューション(ここでいじくり回しました)を使用しました。

問題は、Firebugで観察したように、MVC3プロジェクトで実行すると、次のブロックの3行目から開始しなくなることです。そのため、ソリューションは機能しません。

    var validator = $("#myForm").validate();
    var tabs = $("#tabs").tabs({
        select: function(event, ui) { // Here.
            // The following lines are not executed.
            var valid = true;
            var current = $(this).tabs("option", "selected");
            var panelId = $("#tabs ul a").eq(current).attr("href");

プロジェクトでスクリプトの残りの部分が実行されない理由と、それを修正するために何をすべきかを誰かに教えてもらえますか?ありがとう!

私のビューファイルで

@ModelType SLC.Models.RegisterModel

// downloaded with NuGet
<script src="@Url.Content("~/Scripts/jquery.validate.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.js")" type="text/javascript"></script>
<script type="text/javascript">
    $(document).ready(function () {
        var validator = $("#myForm").validate();
        console.log(validator);
        var tabs = $("#tabs").tabs({
            select: function (event, ui) {
                var valid = false;
                var current = $(this).tabs("option", "selected");
                var panelId = $("#tabs ul a").eq(current).attr("href");

                $(panelId).find("input").each(function () {
                    console.log(valid);
                    if (!validator.element(this) && valid) {
                        valid = false;
                    }
                });

                return valid;
            }
        });
    });
</script>
<link rel="stylesheet" href="@Url.Content("~/Content/themes/base/jquery-ui.css")" />

@Using Html.BeginForm("", "", Nothing, New With {.id = "myForm"})
    @Html.ValidationSummary(True, "Account creation was unsuccessful. Please correct the errors and try again.")
    @<div>
        <div id="tabs">
            <ul>
                <li><a href="#tab-1">1. Information</a></li>
                <li><a href="#tab-2">2. Information</a></li>
                <li><a href="#tab-3">3. Confirm</a></li>
            </ul>

            <div id="tab-1">
                // Some fields...
            </div>

            <div id="tab-2">
                // Some fields...
            </div>

            <div id="tab-3">
                // Some fields...

                <input type="submit" value="Register" />
            </div>
        </div>
    </div>
End Using

レイアウトテンプレートファイル

<head>
    <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
    // downloaded with NuGet
    <script src="@Url.Content("~/Scripts/jquery-1.9.1.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery-ui-1.10.0.js")" type="text/javascript"></script>
</head>
4

1 に答える 1

0

私はこれを見つけました:

特に、 jQuery UIselectメソッドは1.10.0で非推奨になったため、UI1.9.2に戻るかコードを書き直します。

于 2013-02-27T00:41:56.127 に答える