只需更改表单操作URL即可将参数添加到GET表单

时间:2017-03-31 12:37:02

标签: javascript jquery forms struts2

首先,我尝试了许多使用Jquery / javascript的方法,因此我能够更改表单的操作,但无法动态添加参数:

<form id="rfForm" name="rfForm"  action="./">
    <input type="hidden" id="sessionKey" name="sessionKey"></input>
    <button id="downloadRF" style="visibility:hidden">Download</button>
</form>

现在我有一个javascript函数 getAllParams(),它将动态计算一些参数并将其值返回为字符串,如:cefId = -1&amp; cefMilestoneId = 4304&amp; dt = 12/31/2016&amp; ; stDate = 01/01/2016

$("#downloadRF").on("click", function(e){
        e.preventDefault();
        var url = "./downloadFASReport.action";
        $("#rfForm").attr('action',url+getAllParams());
        $("#rfForm").submit();
        });

现在在此表单提交之前,如果我在chrome中调试:

>document.getElementById('rfForm').action
www.example.com/downloadFASReport.action?cefId=-1&cefMilestoneId=4304&dt=12/31/2016&stDate=01/01/2016

但在实际的Url调用中,它不会添加任何参数,而它所点击的Url只是:www.example.com/downloadFASReport.action?

它是如何被覆盖的,是否有解决方案?我不能做一个ajax调用,因为我必须生成并下载一些excel /二进制文件(我无法存储在服务器上)。

同时 我尝试了一个隐藏的文本字段,然后在表单提交之前将所有这些参数(cefId = -1&amp; cefMilestoneId = ....)作为字符串附加到它,但在表单提交期间,它以unicode方式编码所有内容,因为它很好假设所有文本参数都是文本值。

0 个答案:

没有答案