我有以下問題:的CustomValidator與服務器端驗證只
上有許多頁驗證,所有的人,除了一個同時擁有客戶端和服務器端驗證。其中一個只有服務器端驗證。
問題:
我的網頁被張貼甚至一些客戶端驗證是無效的。我認爲它應該首先驗證客戶端,當一切都好的時候,它應該檢查服務器端。
代碼:
的js部分:
var hash = {
'.jpg' : 1,
'.jpeg' : 1,
'.bmp' : 1,
'.png' : 1
};
function FileExtension(obj, args) {
var file = '<%=UploadFoto_FileUpload.ClientID %>';
var re = /\..+$/i;
var ext = $("#" + file).val().match(re);
if (ext != undefined) {
ext = ext.toLowerCase();
if (hash[ext]) {
args.IsValid = true;
} else {
args.IsValid = false;
}
}
else {
args.IsValid = false;
}
}
function Validator2(obj, args){
args.IsValid = true;
}
asp.net部分:
<asp:CustomValidator ID="UploadFoto_FileUpload_CustomValidator1" ErrorMessage="Ext error" ClientValidationFunction="FileExtension" OnServerValidate="UploadFoto_FileUpload_CustomValidator1_ServerValidate" Display="Dynamic" runat="server" />
<asp:CustomValidator ID="UploadFoto_FileUpload_CustomValidator2" ErrorMessage="De foto is te groot (maximaal 6mb)" ClientValidationFunction="Validator2" OnServerValidate="UploadFoto_FileUpload_CustomValidator2_ServerValidate" Display="Dynamic" runat="server" />
<asp:FileUpload ID="UploadFoto_FileUpload" CssClass="uploadField" runat="server" />
<asp:ImageButton ID="Submit_ImageButton" ImageUrl="../Images/btn-verzenden.png" AlternateText="Verzenden" CssClass="verzendenBtn" OnClick="Submit_ImageButton_Click" runat="server" />
經過進一步的測試,我發現,如果是甚至只有他們第一次有 - UploadFoto_FileUpload_CustomValidator1存在相同的場景:
當上傳文件被佔用y,則顯示分機錯誤頁面沒有被公佈
當選擇文件,但轉錯了則顯示分機錯誤頁面沒有被公佈
當選擇與正確的分機文件,那麼錯誤信息沒有顯示,但表格正在發佈,即使有其他驗證器有錯誤
嗨,觸發客戶端驗證的按鈕應該有相同的驗證組。你可以請添加一些你的html,所以我們可以看到問題的位置? – user29964 2010-07-13 09:03:08
頁面上只有一個組,此驗證程序與FileUpload控件連接 – awattar 2010-07-13 09:22:45
如果向我們顯示您的html,仍然更容易。你可以在這裏找到一個非常乾淨的示例,用於使用驗證器:http://www.dotnet-guide.com/validationgroups.html – user29964 2010-07-13 09:30:16