Firefox HTTP表单操作不会触发

时间:2012-06-25 16:25:15

标签: javascript forms firefox asp-classic

在Chrome和IE中,以下代码在单击Anchor标记时弹出表单(模式框ID“modalContent”,表单ID为“DL”)并向表单添加“OnSubmit”。提交表单后,它将通过Javascript导航到所请求的PDF,并运行一些ASP以发送附有其详细信息的电子邮件。

<script language="javascript">
            function downloadAnyway(link) {
                    $('#DL')[0].setAttribute('ONSUBMIT', 'return checkform("' + link + '")'); 
                    $('#modalContent').modal();
            }

            function checkform(navName) {
                    window.open(navName);
                    $.modal.close();
            }
</script>    

<!-- link to download a product guide -->    
<a href='javascript:downloadAnyway("downloads/ProductGuide.pdf")');">Product Guide</a>

<div id="modalContent">           
            <form id="DL" action="contactusprocessNew2.asp" method="post" name="contact" >
                <div align="center">
                     <input type="image" src="templates/default/images/submit_download.gif" class="imagebutton" value="submit" />
                </div>
            </form>
</div>

这在IE和Chrome中运行良好,在Firefox中,Javascript onsubmit有效,但asp的动作永远不会触发。如果我删除了javascript,则asp会按预期触发。

因此,动态添加“onsubmit”后,FireFox中的最终形式如下所示:

<form id="DL" action="contactusprocessNew2.asp" method="post" name="contact" onsubmit="return checkform("downloads/ProductGuide.pdf")">

onsubmit触发,在另一个标签中打开产品指南,然而,ASP Action永远不会触发。这里还有更多内容,比如我们写一个cookie,确保我们不会在每次使用我们的下载时都要求客户下载,但是,我已经删除了我认为在问题域之外的任何内容。

在asp中,我已经摆脱了所有代码并放了一个简单的response.redirect来查看它是否会触发并确保ASP中没有任何内容。

知道如何让它在FireFox中运行吗?

更新:

我已经用'正确'的jquery提交连线取代了onsubmit事件连线,替换了下面的第一行,第二行。表单上的asp仍然不起作用。

    //$('#DL')[0].setAttribute('ONSUBMIT', 'return checkform(\'' + link + '\')');

    $('#DL').submit(function checkform() {
        $.modal.close();
        window.open(link);
        return true;
    });

更新2

是的,这是因为在ASP触发之前模态弹出CLOSES。如果我们注释掉$ .modal.close()行;然后asp按预期发射。在Chrome和IE中,javascript和ASP必须同时触发,在Firefox中,javascript会触发“隐藏”div与“modelContent”并且asp无法再触发。所以这是真正的问题......现在如何解决它......

0 个答案:

没有答案