我有這個問題,我有兩個複選框,我想驗證,所以必須選擇其中之一。ASP.NET動態驗證使用JavaScript
我創建使用JavaScript的方法是:
function learningDisValidator(source, args) {
if (document.getElementById("<%= persLearningDisabilityYes.ClientID %>").checked || document.getElementById("<%= persLearningDisabilityNo.ClientID %>").checked) {
args.IsValid = true;
}
else {
args.IsValid = false;
}
}
比我的自定義字段校驗器,它是
<asp:CustomValidator id="learningDisVal" runat="server" Display="Dynamic" Enabled="true" ErrorMessage="Learning Disability is Required" ClientValidationFunction="learningDisValidator"></asp:CustomValidator>
現在這種驗證出於某種原因不能正常工作。我的問題是,我有那些如果某些選項使用
ValidatorEnable(document.getElementById('persLearningDisabilityDetailsVal'), true);
選擇這些做的工作運行過程中啓用其他驗證。我在運行時啓用了這些驗證器的問題是,一旦啓用了錯誤消息,就會在錯誤提示按鈕被點擊後立即顯示。我對ASP.NET很陌生。任何幫助將不勝感激,謝謝。
編輯:我有其他驗證程序,根據用戶選擇啓用,例如,如果單選按鈕1被選中,它會顯示新的表單域,並啓用驗證器爲「城市」,如果單選按鈕2被選中顯示新的表單域併爲「女性」啓用驗證器。現在我的問題是,一旦啓用驗證程序,就像我上面顯示的那樣,它的錯誤信息會立即顯示在屏幕底部的錯誤面板中,該面板基本上是一個帶有asp.net自定義驗證程序的div。我希望在點擊提交按鈕後顯示此消息,從而讓用戶有時間弄清楚他的「自己的」並沒有告訴他有什麼需要之前給他機會去做。至於代碼我不知道還有什麼可以給,但我會嘗試:
<div class="col1of1val"><asp:RequiredFieldValidator runat="server" ID="accHostFamilyDetailsAllergiesVal" Display="Dynamic" ControlToValidate="accHostFamilyDetailsAllergies" ErrorMessage="field cannot be empty" Enabled="false"></asp:RequiredFieldValidator></div>
,並在javascript:
ValidatorEnable(document.getElementById('accHostFamilyDetailsAllergiesVal'), true);
工作測試,我會很樂意幫助,雖然,你能提供你的代碼的更完整的例子嗎? – Yushell
不要如果我的編輯確實有幫助,我只是希望它:) – mikkuslice
糾正我,如果我錯了。 CustomValidator在頁面的帖子之前觸發。你希望它在之後開火。對? – Yushell