javascript - asp.net 验证错误后 Page.IsValid 始终为 false

标签 javascript asp.net

我有一个文件上传代码...在onchange事件中检查文件大小,格式,然后上传到物理文件夹。如果所有验证都为 true,则上传按钮将从 onchange 事件触发。

一切正常,但我上传了错误的格式文件,并且会弹出验证错误,并且在下一个文件上传中 Page.Isvalid 为 false,因此即使上传了正确的格式/大小,文件也不会上传。如何解决这个问题。

下面是代码:

javascript

 function UploadFile(fileUpload) {


    if (fileUpload.value != '') {
        var title = document.getElementById("<%=txtTitle.ClientID%>").value;
        var sFileName = fileUpload.value.toLowerCase();
        var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1];
        var file = (fileUpload.files[0].size / 1024);
        var limit = <%= ConfigurationManager.AppSettings["MaxLimit"]%>;

        var maxlimit = limit * 1024;
        var type = document.getElementById("<%=hdnType.ClientID%>").value;
        if (title != "") {
            if (file > maxlimit) {


                fileUpload.value = null;
                ShowAlert("Sorry the file you are trying to upload exceeds the allowed file limit. Allowed size is 10MB.");

            }
            else {
                if (type == 1) {
                    if (sFileExtension != "png" && sFileExtension != "jpg" && sFileExtension != "jpeg") {

                        fileUpload.value = null;
                        ShowAlert("File Format not supported. Please upload .jpeg/.png files");


                    }
                    else {
                        document.getElementById("<%=btnSave.ClientID%>").click();

                    }
                }
}
}


 <asp:FileUpload ID="upldfile" runat="server" onchange="UploadFile(this)"  ClientIDMode="Static" />
 <asp:Button ID="btnSave" runat="server" UseSubmitBehavior="false" ValidationGroup="save" Text="Save" style="display:none;" OnClick="Upload"  data-dismiss="modal"   class="btn btn-danger" />

Upload event

 public void Upload(object sender, EventArgs e)
    {
        if (Page.IsValid)
        {
            SavePortfolio();
        }


    }

最佳答案

试试这个

function UploadFile(fileUpload) 
{
    if (fileUpload.value != '') {
        var title = document.getElementById("<%=txtTitle.ClientID%>").value;
        var sFileName = fileUpload.value.toLowerCase();
        var sFileExtension = sFileName.split('.')[sFileName.split('.').length - 1];
        var file = (fileUpload.files[0].size / 1024);
        var limit = <%= ConfigurationManager.AppSettings["MaxLimit"]%>;
        var maxlimit = limit * 1024;
        var type = document.getElementById("<%=hdnType.ClientID%>").value;

        if (title != "") {
            if (file > maxlimit) {
                fileUpload.value = null;
                ShowAlert("Sorry the file you are trying to upload exceeds the allowed file limit. Allowed size is 10MB.");
                return;
            }
            else {
                if (type == 1) {
                    if (sFileExtension != "png" && sFileExtension != "jpg" && sFileExtension != "jpeg") {
                        fileUpload.value = null;
                        ShowAlert("File Format not supported. Please upload .jpeg/.png files");
                        return;
                    }
                    else {
                        document.getElementById("<%=btnSave.ClientID%>").click();
                    }
                }
            }
        }
    }
}

关于javascript - asp.net 验证错误后 Page.IsValid 始终为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43649309/

相关文章:

javascript - asp.net - 如何获取动态更改的div block 的内容

c# - 在没有参数的另一个函数中使用一个函数的变量?

javascript - 模板文字 js

javascript - IE8 jQuery 提交不适用于表单

javascript - 检查是否未选中 n 个复选框

javascript - 迁移到 TypeScript。为什么我的函数不被识别?

javascript - 如何在窗口管理器中添加 tinymce 列表框值

asp.net - Umbraco 神奇地恢复到 "Looks like there' 秒的更多工作要做”

javascript - 在 ASP.NET 文本框中使用 javascript

javascript - aspx 不会看到 javascript 所做的更改吗?