ASP.NET MVC 3. Как поместить сводку проверки для одной формы в другую? - PullRequest
1 голос
/ 29 ноября 2011

У меня есть небольшая форма, которая нуждается в сводке проверки, но эта сводка проверки должна быть определенно помещена в другую форму.

Я знаю, что есть ограничение - сводка проверки проверяет только элементы в текущей форме, так что я ищу какой-то хруст.

Есть ли какое-либо решение, которое не включает в себя написание собственной проверки и сотен строк Javascript?

Ответы [ 2 ]

0 голосов
/ 02 декабря 2011

Невозможно решить эту проблему с помощью стандартных событий: перед отправкой события сработал метод «validate» Сводка проверки отсутствует на странице, а callint «validate» останавливает отправку события (если у вас есть какие-либо ошибки причины). *

Что я сделал, так это редактирование "jquery.validate.unobtrusive.js". шаги:

1) В файле "jquery.validate.unobtrusive.js" в function onErrors я добавил диспетчеризацию событий:
function onErrors(form, validator) {
        // native code
        jQuery("#submitErrorProxy").trigger(jQuery.Event("click")); // my event
    }

2) Добавлен скрытый ввод в мою форму с id="submitErrorProxy"

3) добавлен контейнер div на месте, где должна отображаться сводка проверки.
<div class="form-line" id="validationSummaryContainer">
     //validation summary should be moved here 
</div>

4) Добавлен следующий метод Javascipt

    $("#submitErrorProxy").click(function (e) {
                $("#validationSummaryContainer").empty();
                $(".validation-summary-errors").clone(true, true)
                 .appendTo("#validationSummaryContainer");
            });

Где clone(true, true) - создает копию выбранного элемента со всеми его дочерними элементами. И appendTo используется вместо move, поскольку исходное резюме проверки должно присутствовать в исходной форме.

5) Скрытый оригинальный контейнер ValidtionSummary.

<div class="form-line" style="visibility: hidden; height: 0px">
    @Html.ValidationSummary(false)
</div>
0 голосов
/ 29 ноября 2011

Вы предоставили мало информации о том, что это за формы и как они связаны или зачем вам нужно перемещать эту информацию для проверки.Плюс, давайте проясним ситуацию: сводка проверки не проверяет ничего, она только отображает сводку ошибок проверки.Вы правы, хотя, резюме представлено только для родительской формы.Если вы действительно не хотите перемещать сводку из одной формы в другую, вы можете связать событие submit () и с помощью jquery переместить элемент .validation-summary-errors в другую форму.

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