MVC3 Razor / JQuery Проверка на стороне клиента не работает - PullRequest
3 голосов
/ 23 августа 2011

Я использую ASP.NET MVC 3 Razor с плагином проверки jquery для создания регистрационной формы.Поэтому я включил это:

<script src="@Url.Content("~/Scripts/jquery-1.4.4.js")" type="text/javascript"></script>
<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>

Я добавил следующее в свой Web.config:

<appSettings>
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
</appSettings>

Моя форма бритвы выглядит следующим образом:

@model bop.Web.Models.ProfileModel

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Page title</h2>
@Html.ValidationSummary(true)
@using (Html.BeginForm("Register", "Profile", FormMethod.Post, new { id = "RegForm" }))
{
    <fieldset>
        <div class="editor-label">
            @Html.LabelFor(model => model.companyName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.companyName)
            @Html.ValidationMessageFor(model => model.companyName)
        </div>
        <div>
        ... here other input fields ...
        </div>
        <a href="#" id="nextbtn1">GO TO STEP 2</a>
    </fieldset>

Внизу у меня есть:

<script type="text/javascript">
    $(document).ready(function () {
        $('#nextbtn1').click(function () { // bind click event to link
            $("#RegForm").validate();
            if ($("#RegForm").valid()) {
                var $tabs = $('#tabs').tabs(); // first tab selected
                $tabs.tabs('select', 1); // select second tab
                return false;
            }
        }
    }
</script>

Я использую bind для события click, потому что моя регистрационная форма разбита на 3 вкладки, поэтому я выполню отправку на третьем шаге.

Проблема в том, что когда я нажимаю кнопку «Перейти к шагу 2», я получаю эту ошибку:

Run-time error in Microsoft JScript: Object does not support this property or method 'validate'

Большое спасибо заранее за полезные указатели.

1 Ответ

2 голосов
/ 23 августа 2011

Прежде чем проверять, является ли форма действительной, вы должны сначала проверить ее, поэтому перед строкой введите if ($("#RegForm").valid()) {:

$("#RegForm").validate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...