ValidationSummaryはポストバック時のエラーのリストを表示します。各フィールドが固定されると、バリデーターが起動され、検証テキストが消えます。 ValidationSummaryも自動的に更新したいと思います。Update ValidationSummaryリストのコントロールがぼやけていますか?
<asp:TextBox ID="ForenameTextBox" onblur="ValidationSummaryOnSubmit()" runat="server" />
それが変化し、すべてのフィールドでこれを維持する手段として、これは、理想的ではありません。
次は正常に動作します。 (。ValidationSummaryOnSubmit
は、Microsoftの機能です)だから私は動的にそれを実行しようとしました:
addEvent(window, "load", UpdateValidationSummary);
function addEvent(obj, evType, fn) {
if (obj.addEventListener) {
obj.addEventListener(evType, fn, true);
} else {
if (obj.attachEvent) {
var r = obj.attachEvent("on" + evType, fn);
return r;
}
}
}
function removeEvent(obj, evType, fn) {
if (obj.removeEventListener) {
obj.removeEventListener(evType, fn, true);
return true;
} else if (obj.detachEvent) {
var r = obj.detachEvent("on" + evType, fn);
return r;
}
}
function UpdateValidationSummary() {
if (typeof (Page_Validators) == "undefined") {
return;
}
var i, val, ctrl;
for (i = 0; i < Page_Validators.length; i++) {
val = Page_Validators[i];
if (val.controltovalidate != null && val.controltovalidate != "") {
ctrl = document.getElementById(val.controltovalidate);
if (ctrl != null && typeof (ValidationSummaryOnSubmit) == "function") {
//add call to ValidationSummary on blur
addEvent(ctrl, "blur", ValidationSummaryOnSubmit);
}
}
}
}
しかしこれは動作しません - 一つのフィールドが固定されているとき、全体にValidationSummaryが消え、ValidationSummaryOnSubmit機能は二回呼び出されますように思われます。 addEvent
関数の代わりに単純な代入を使用すると、それは機能しますが、すでにonBlur
イベントで何か起こっている可能性のあるフィールドを扱いたいと思います。
基本的には、ValidationSummaryOnSubmit
関数の呼び出しを各コントロールのハンドラーのonBlur
の「リスト」に追加するだけでよいと思います。上記のコードがこれを行うように見えないのはなぜですか?ここで
これが役に立つかもしれません別のアプローチです。 http://stackoverflow.com/questions/9610939/asp-net-validationsummary-not-shown-after-onchange-event/10539156#10539156 – Milox