我有一個需要驗證總結的小表單,但是這個驗證總結應該被明確地放在另一個表單上。ASP.NET MVC 3.如何將一個表單的驗證摘要轉換爲另一個表單?
我知道,有一個限制 - 驗證總結只檢查當前表單中的元素,所以我搜索的是什麼類型的緊縮。
是否有任何解決方案不會涉及編寫自己的驗證和數百行Javascript?
我有一個需要驗證總結的小表單,但是這個驗證總結應該被明確地放在另一個表單上。ASP.NET MVC 3.如何將一個表單的驗證摘要轉換爲另一個表單?
我知道,有一個限制 - 驗證總結只檢查當前表單中的元素,所以我搜索的是什麼類型的緊縮。
是否有任何解決方案不會涉及編寫自己的驗證和數百行Javascript?
這是不可能解決這個問題與標準事件:在提交事件觸發「驗證」方法之前驗證摘要不存在頁面和callint「驗證」停止事件調度(如果你有任何錯誤的原因)。
我做了什麼涉及到「jquery.validate.unobtrusive.js」的edititng。步驟:
1)在 「jquery.validate.unobtrusive.js」 文件中function onErrors
我添加事件分派:
function onErrors(form, validator) {
// native code
jQuery("#submitErrorProxy").trigger(jQuery.Event("click")); // my event
}
2)增加了隱藏輸入我的形式與id="submitErrorProxy"
<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>
您幾乎沒有提供有關這些表單以及它們如何關聯的信息,或者您爲什麼需要移動該驗證信息。 Plus可以讓事情變得簡單:驗證摘要不會檢查任何內容,只會顯示驗證錯誤的摘要。你說得對,摘要只是針對父表單提交的。如果你真的不想將摘要從一個表單移動到另一個表單,你可能想綁定到submit()事件,並使用jquery將.validation-summary-errors元素移動到另一個表單。
有這樣移動的ValidationSummary上提交事件的想法,但是當我的方法贊同這種情況下,出現的ValidationSummary之前頁面上調用方法 - 這會導致不同的,但不是簡單的問題。 –