EnableClientValidation с несколькими формами - PullRequest
0 голосов
/ 11 октября 2010

Я пытаюсь использовать проверку на стороне клиента с jQuery в ASP.NET MVC (2).Я нашел этот замечательный пример

, который отлично работает, но у меня возникают проблемы, когда я пытаюсь использовать произвольное имя для своей формы.Похоже, что методы EnableClientValidation используют имя формы по умолчанию "form0" для внедрения клиентского скрипта и не поддерживают никакие другие имена.
Вот пример кода того, что я пытаюсь сделать:

<%=Html.ValidationSummaryJQuery("Please fix these errors.", "id", "BPValidationID")%>
<% Html.EnableClientValidation()%>
<%  Using (Html.BeginForm("Edit", "Home", New With {.Id = Model.Code}, FormMethod.Post, New With {.id = "EditForm"}))%>
        <% ViewContext.FormContext.ValidationSummaryId = "BPValidationID"%>
        <%=Html.AntiForgeryToken("AF-BP-SPED-token")%>
    <fieldset>
        <legend>Fields</legend>
        <div class="editor-label">
            <%=Html.LabelFor(Function(m) m.Name)%>
        </div>
        <div class="editor-field">
            <%=Html.TextBoxFor(Function(m) m.Name)%>
            <%=Html.ValidationMessageFor(Function(m) m.Name, "*")%>
        </div>
        <p>
            <input type="submit" name="submitButton" value="Save" />
        </p>
    </fieldset>            
    <%End Using%>

Есть ли у меня шанс использовать имя FORM, если я хочу использовать несколько форм на своей странице?

Спасибо за любую помощь,

Альберто

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Полагаю, вы имеете в виду форму id? Формы не имеют name с. В любом случае, EnableClientValidation отлично работает с пользовательской формой id s. Если у вас возникли проблемы, посмотрите на сгенерированный HTML / JS.

Это действующий рабочий код:

<% Html.EnableClientValidation(); %> 
<% using (Html.BeginForm(null, 
                         null, 
                         new RouteValueDictionary{{ "Id", Html.ModelId() }, { "ReturnUrl", ViewData.Eval("ReturnUrl") }}, 
                         FormMethod.Post, 
                         new Dictionary<string, object> { { "id", "editForm" } })) { %>
    <div id="row1">
        <%: Html.EditorForModel() %>
    </div>

Визуализированная форма:

<form action="/Snipped/Url" id="editForm" method="post">
    <div id="row1">
        <input ...
0 голосов
/ 16 ноября 2010

Я изменил метод расширения ValidationSummaryJQuery;этот метод теперь получает объект вместо IDictionary.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...