Я трачу 3 недели, чтобы решить проблему ненавязчивой проверки, используемой в диалоговых окнах в MyPrettyCMS.
Я также использую LocalizedRequiredAttribute, как вы можете видеть в этих AutoGenerated MetaDataModels .
Я не знаю Orcad, но полагаю, что он представляет пользовательские формы в виде диалогов JQuery, как и я.
Есть две трудности:
1-й: вы должны (заново) прикрепить диалоговые поля к форме, которую вы будете использовать для отправки данных на сервер.
2-й: вы должны (пере) проанализировать форму, чтобы получить рабочую ненавязчивую проверку
Здесь вы найдете полную формула на основе JQuery Dialog , работающую с ненавязчивой проверкой и выделите строку $ .validator.unobtrusive.parse (форма);
Эта сила ненавязчиво анализирует добавленные элементы управления ajax.
Посмотрите $ .fn.jqDialogFunction в общем наборе инструментов JQuery
$.fn.jqDialogFunction = function (idDiv, titre, okFunction, openFunction) {
var dialogBox = $(idDiv)
//$(dialogBox).removeClass("notDisplayed");
$(dialogBox).hide();
$(dialogBox).dialog({
title: titre,
autoOpen: false,
resizable: false,
modal: true,
minHeight: 450,
minWidth: 800,
open: openFunction,
buttons: [
{
text: "Ok",
click: okFunction
}
,
{
text: "Cancel",
click: function () {
$(this).dialog("close");
}
}
]
});
var form = dialogBox.find("form");
if (form != null) {
$.validator.unobtrusive.parse(form);
}
$(idDiv).dialog('open');
}
Затем посмотрите метод $ .fn.SaveContent -> $ ("# divStructurePage"). Parent (). AppendTo (form);
$.fn.SaveContent = function () {
$(this).dialog("close");
var content = tinyMCE.activeEditor.getContent();
$("#hidNewContent").val(content);
var v = $("#StructurePage_FK_LayoutMenu_Translation").val();
var form = $("#frmManagedContent");
$("#divStructurePage").parent().appendTo(form);
form.attr("action", "/"+ $("#hidControllerName").val() +"/Save/" + v);
form.submit();
}