如何解决在jQuery UI对话框中显示MVC3非侵入式验证摘要错误
| 我正在寻找在jQuery UI对话框中显示MVC3的不显眼的ValidationSummary错误。具体来说,我希望能够有一种“现场” \0ѭ般的体验。就是说,每当MVC3客户端验证显示(第一次)或更新(重复犯规)the1ѭ元素时,我都希望结果显示在jQuery UI对话框中。 我目前有一些类似的东西@Using Html.BeginForm(\"Action\",\"Controller\",FormMethod.Post,New With {.id = \"MyForm\"})
@Html.ValidationSummary()
...
$(\'#MyForm\').submit(function () {
if (!$(this).valid()) {
$(\'.validation-summary-errors\').dialog(...);
return false;
}
});
但这对我来说并不对。
感觉我应该能够加入验证框架并得到验证完成的通知,并且现在显示了一个错误摘要或使用错误进行了更新。然后使用该事件,对现在显示/更新的“ 1”元素进行“ 3”处理。有这样的事吗?还是有其他建议?
解决方法
所以这就是我最终做的方式。我没有找到太多文档,但是做了足够的JS挖掘工作来达到这一点。不知道我对此感觉如何。我确实知道我不再需要在验证调用中挂接表单的
submit
事件和“ double-up”,所以这很好。似乎该解决方案感到“神秘”(至少在我的经验不足的人看来),我本来希望(并且仍在寻找)一种感觉更加成熟的解决方案。
$(function () {
// If there is an error element already (server side error),show it.
showValidationSummaryDialog();
// When the form validates,and there is an error element,show it
$(\'#MyForm\').bind(\'invalid-form.validate\',function (error,element) {
showValidationSummaryDialog();
}
}
function showValidationSummaryDialog() {
$(\'.validation-summary-errors\').dialog({
title: \'Unable to Save\',close: function () {
$(this).dialog(\'destroy\')
.prependTo($(\'#MyForm\')); // jQuery moves the source element out of the DOM.
// We need to put it back in its place afterwards for validation to maintain its contents.
// TODO: Is there a better way?
}
});
}
, 如果有人要同时显示ValidationSummary
和ValidationSummaryDialog
,请尝试此操作。
按照@ckittel。
@using (Html.BeginForm())
{
@Html.ValidationSummary()
<div id=\"ValidationSummary\" style=\"display:none\" class=\"validation-summary-errors\">
</div>
}
<script type=\"text/javascript\">
function showValidationSummaryDialog() {
$(\'#ValidationSummary\').html($(\'.validation-summary-errors\').html());
$(\'#ValidationSummary\').dialog({
title: \'Error\',modal: true
});
}
$(document).ready(function () {
$(\'form\').bind(\'invalid-form.validate\',element) {
showValidationSummaryDialog();
});
});
</script>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。