javascript - 手动刷新后未引用 ScriptResource.axd

标签 javascript asp.net plupload dotnetnuke-module

我正在尝试在 DotNetNuke (6.x) 中开发一种联系表单模块,我想在其中使用RequiredFieldValidator 标记来验证表单。

因为我还使用 PLUpload 来启用文件上传,所以我在提交按钮的 OnClientClick 事件中调用 JavaScript 函数:

function startUploadForm(objBtn)
{

    if (Page_ClientValidate()) {

        var uploader = $('#uploader').pluploadQueue();
        if (uploader.files.length == 0) return true; // Input is complete -> No running uploads -> Validation ok -> submit
        uploader.bind('UploadComplete', function () {
            __doPostBack('<%= cmdSubmit.UniqueID%>', ''); // Input is complete -> uploads finished -> Validation ok -> submit

        });
        if (uploader.files.length == (uploader.total.uploaded + uploader.total.failed)) return true; // Input is complete -> uploads finished -> Validation ok -> submit
        uploader.start();
        return false; // asynchronous upload isn't finished -> don't submit
    }
    return false; // Input isn't complete -> Validation failed -> don't submit
}

我的 DNN 模块包含几个遵循以下结构的输入字段:

<asp:TextBox ID="SenderName" runat="server" Columns="40" Width="300px"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqName" runat="server" 
                            ControlToValidate="SenderName"
                            ErrorMessage="(required)" 
                            SetFocusOnError="True">
</asp:RequiredFieldValidator>

在表单的末尾,我有一个提交按钮:

<asp:Button ID="cmdSubmit" runat="server" 
            Text="Submit"
            OnClientClick="return startUploadForm(this);" />

现在我的问题是,我需要在 startUploadForm() 函数中调用的客户端验证并非始终可用。有时,网络服务器不会引用 ScriptResource.axd,因此 Page_ClientValidate() 不可用。我通过使用 F12 查看呈现的页面源代码来检查这一点。

如果我通过直接输入 URL 来加载页面,大多数情况下都可以正常工作,但如果我点击浏览器的刷新按钮,则几乎每次都会出现此问题。

这是我迄今为止尝试过的:

将 ValidationGroup 分配给RequiredFieldValidator 对象和提交按钮 在每个RequiredFieldValidator对象上定义属性enableclientscript =“true”

我在这里做错了什么吗?

更新:请参阅我的评论。禁用该特定模块的 DNN 缓存后,它工作正常。

最佳答案

我偶然发现了 DNN 的模块缓存设置,并注意到我将其设置为“未定义”,值为“0”。现在我已将其更改为"file",值再次为“0”,并且初始测试运行没有任何问题。

关于javascript - 手动刷新后未引用 ScriptResource.axd,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26013809/

相关文章:

javascript - 在循环内调用异步函数

javascript - 实现 Google Analytics 事件跟踪后按钮不再起作用

php - Laravel 4 TokenMissMatchException 与 Plupload

ruby-on-rails - 使用 plupload 和 Rails 3 进行 Amazon S3 分段上传

javascript - 禁用列表框中的多选而不转换为 DropDownList

javascript - AJAX + promise : Chaining AJAX calls not working

asp.net - 页面永远不会加载

C# 使用 XSD 架构作为表单的元数据

asp.net - 使用 Cookie 登录 Web API

plupload - 刷新小负荷