Перехват ошибок проверки данных при отправке формы - PullRequest
0 голосов
/ 06 мая 2011

Я пишу форму в ASP.NET MVC 3 (но в других средах ситуация может быть похожей). При отправке формы я хочу отключить страницу, потому что обработка на сервере немного длинная, поэтому я хочу, чтобы пользователь дважды не нажимал на кнопки. Я использую функцию плагина blockUI, как в:

<script type="text/javascript">
    jQuery(document).ready(function () {
        $('#AddUserForm').submit(function () {
            $.blockUI();
        });
    });
</script>

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

<input class="text-box single-line" data-val="true" data-val-required="The UserName field is required." id="UserName" name="UserName" type="text" value="" />

поэтому, если поле не проверено правильно, форма отправляется (мой код выполняется, блокируя пользовательский интерфейс), но страница даже не перезагружается, поэтому я полностью заблокирован.

Кто-нибудь знает, есть ли событие для перехвата, для этого случая, или полезная альтернатива? Заранее спасибо. Андреа Биоли

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

С mvc3, ClientValidationEnabled и UnobtrusiveJavaScriptEnabled в web.config вы можете просто использовать в своем отправке:

if ($ ("form: first"). Valid ()) {$ .blockUI ({message: 'Un instant svp ...'}); }

0 голосов
/ 06 мая 2011

Посмотрите на метод protectDefault .

<script type="text/javascript">
    jQuery(document).ready(function () {
        $('#AddUserForm').submit(function (event) {
            event.preventDefault();
            $.blockUI();
        });
    });
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...