Он работает только тогда, когда @Html.ValidationMessageFor(m => m.Property)
находится внутри формы. Тем не менее, мне удалось найти обходной путь, который также обновляет внешний DIV, когда есть изменения элементов, то есть, когда сообщения об ошибках изменить без повторной отправки формы:
- Поместите
<div id="outside-form"></div>
вне формы.
- Вставьте форму
<div id="inside-form" style="display:none;"></div>
в вашу форму, содержащую все заявления @Html.ValidationMessageFor(m => m.Property)
.
- Это неприятная часть, в вашем jquery.validate.js, найти следующее:
form: function() {.....}
и как раз перед функцией возврата добавить $("#outside-form").html($("#inside-form").html());
. Это гарантирует, что ваш внешний-div будет обновляться каждый раз, когда вся форма проверяется.
element: function(element) {.....}
и непосредственно перед возвратом функции добавить $("#outside-form").html($("#inside-form").html());
. Это гарантирует, что ваш внешний-div будет обновляться каждый раз, когда каждый элемент формы проверяется.
Вот и все! Мне было интересно, есть ли способ расширить объекты form
и element
без изменения самого файла .js. У вас есть какие-либо сведения об этом?
Можете ли вы опубликовать свой код просмотра. Также почему вы хотите, чтобы он находился вне элемента формы. – ckv
Привет, я хочу, потому что в представлении есть несколько форм. Следовательно, все ошибки должны быть показаны выше. – TBA
Это несколько форм, передаются ли данные «Ajax.BeginForm»? –