我有以下问题:的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