【发布时间】:2010-07-13 08:52:23
【问题描述】:
我有以下问题:
Page 上有很多验证器,除了一个之外,所有验证器都具有客户端和服务器端验证。其中之一只有服务器端验证。
问题:
我的页面正在发布,即使某些客户端验证无效。我认为它应该首先验证客户端,当一切正常时,它应该检查服务器端。
代码:
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 也会出现相同的情况:
当上传字段为空时,会显示 Ext 错误且页面未发布
when file is chosen but ext is wrong then Ext error is displayed and page is not being posted
选择具有正确突出部门的文件然后未显示错误消息,但甚至已发布表单,即使是有错误的其他验证器
【问题讨论】:
-
嗨,触发客户端验证的按钮应该具有相同的验证组。能否请您添加一些 html,以便我们查看问题所在?
-
页面只有一组,这个验证器是和FileUpload控件连接的
-
如果您向我们展示您的 html,仍然会容易得多。您可以在此处找到一个非常简洁的使用组验证器的示例:dotnet-guide.com/validationgroups.html