我正在處理一個頁面,該頁面有一系列複選框,至少必須選中一個框。多個控件上的asp.net CustomValidator
當我點擊提交按鈕時,驗證器觸發,如果沒有選中複選框,則表示驗證失敗。但是,如果我選中其中一個複選框,驗證消息不會消失,直到我再次單擊提交按鈕。
如果我在一個指定了ControlToValidate的控件上使用它並且我修復了驗證問題,那麼錯誤消息立即消失。
但是在這種情況下,我不設置ControlToValidate,因爲需要驗證幾個獨立的控件。
所以我的問題是我可以導致自定義驗證程序的重新驗證?例如,我想在每個複選框上添加一個onclick =「revalidate()」,然後強制驗證再次發生。
這裏是我寫的一些示例代碼來演示場景。
<script type="text/javascript">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
function IsOneCheckboxChecked(sender, args) {
if (!$('[id$=checkBox1]').attr('checked') &&
!$('[id$=checkBox2]').attr('checked')) {
args.IsValid = false;
}
else {
args.IsValid = true;
}
}
</script>
<asp:CheckBox ID="checkBox1" runat="server" />
<br />
<asp:CheckBox ID="checkBox2" runat="server" />
<br />
<asp:CustomValidator ID="customValidatorMustBeOnCheckboxChecked"
runat="server" ClientValidationFunction="IsOneCheckboxChecked"
ErrorMessage="You must select at least one checkbox option"
OnServerValidate="customValidatorMustBeOnCheckboxChecked_ServerValidate" />
<br />
<br />
<asp:Button ID="buttonSubmit" runat="server" Text="Submit" />
在你的CustomValidator標籤,你嘗試包括顯示= 「動態」? – TheGeekYouNeed 2010-10-06 23:40:12
顯示只決定錯誤消息的位置是靜態的還是動態的。不過,我繼續嘗試你的建議,但沒有什麼區別。 – 2010-10-06 23:45:57