微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

重新设置 Coldfusion 网页中隐藏字段的值

如何解决重新设置 Coldfusion 网页中隐藏字段的值

在 Coldfusion CFM 页面 (my_files.cfm) 中,我有一个带有认值的隐藏输入框:

<input type="hidden" id="downloadFlag" name="downloadFlag" value="#variables.downloadFlag#">

我还根据隐藏字段定义了一个CF变量:

variables.downloadFlag = form.downloadFlag;

在同一页面上,我定义了一个“下载”按钮:

<button id="DownloadBtn" class="btn btn-default edit" type="submit" onclick="setDownloadFlag()">Download</button> 

思路是隐藏字段(downloadFlag)初始设置为0,当点击Download按钮时,运行JS函数“setDownloadFlag()”,设置隐藏字段的vlaue为1:

    <script>
    function setDownloadFlag() {
        document.getElementById('downloadFlag').value = 1;
    };
    </script>

然后提交页面,执行这段代码

    <cfscript>
    if (variables.downloadFlag eq "1") {
        variables.d_srx = CreateObject('component','my_files');
        variables.d_success  = variables.d_srx.download_files(variables.q_data);
    }
    </cfscript>

调用函数 - download_files() - 位于 CFC 页面 (my_files.cfc) 中。该函数定义为:

    <cffunction name="download_files" access="remote" output="yes" returntype="numeric">
        <cfargument name="downloadData" type="query" required="true"> 
    ...[download code here]...
    <cfreturn 0>
    </cffunction>

到目前为止,一切都很好。这实际上有效,并且在单击按钮时发生下载。问题是隐藏字段仍然设置为“1”。我需要将其重新设置为“0”。

我面临的问题是我不知道如何将隐藏字段 (downloadFlag) 的值重新设置回“0”。我认为它应该是这样的:

    <cfscript>
    if (variables.downloadFlag eq "1") {
        variables.d_files = CreateObject('component','my_files');
        variables.d_success  = variables.d_files.download_files(variables.q_data);
        document.getElementById('downloadFlag').value = "0";  //Something like this
    }
    </cfscript>

但这不起作用。任何想法将不胜感激!

解决方法

我决定使用动态元素,而不是使用静态隐藏元素,如下所示:

function download() {

        $('#form').append('<input type="hidden" id="downloadFlag" name="downloadFlag">').submit();

    };

这样,我所要做的就是检查元素是否存在。当我不需要它时,我将其删除,如下所示:

document.getElementById('downloadFlag').remove

这似乎工作正常。 感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。