html中的表单 - 如何让表单做两件事?

时间:2009-09-06 07:52:57

标签: html forms

我有一个表单可以通过Feedburner注册获取RSS Feed。 这是代码 -

<form action="http://feedburner.google.com/fb/a/mailverify" method="post">
    <p><input name="email" type="text" /></p>
<input name="uri" type="hidden" value="dafyomi" /><input name="loc" type="hidden" value="en_US" /><input type="submit" value="click here to send" /></form>
<p> </p>

我希望它还将表单数据发送到新窗口,并将用户现在的窗口更改为网站上的感谢页面。

有什么想法吗? 谢谢!

3 个答案:

答案 0 :(得分:2)

在干净的HTML中 - 不可能。

你可以使用JavaScript,但它很难看,破坏了可用性,而且大多数浏览器都会阻止它认为你正试图展示广告。

并且强制打开一个新的窗口/标签/任何被弃用的东西,一些浏览器甚至可能会忽略你的'新窗口'并尝试打开当前标签中的东西。这会导致尝试在同一窗口中打开两个东西的未定义行为。

如果重要,您可以考虑使用一个目标页面和<object/>或帧来显示另一个目标页面。但那也不是很有用。

PS。在所有情况下,表单只能提交给其中一个页面。第二个是明确的GET。

答案 1 :(得分:1)

我想建议在这种情况下使用jQuery Ajax Form插件。您可以通过这种方式提交一个表单的两个操作......

$('form').submit(function() {
    $(this).ajaxSubmit({
        url: myurl,              //ajax request to myurl
        success: function() { 
            return true;         //submit form
        }
    });
    return false;
});

答案 2 :(得分:1)

我会在结果页面添加“谢谢!” - 短语 - 毕竟,它只能是一两行,对吗?

如果你认为这不是一个选项,你可能想要做这样的事情:

  1. 表单提交到服务器,查看结果页面所需的相关数据保存在会话
  2. 重定向到感谢页面,其中包含指向结果页面的链接。
  3. 链接触发结果页面的GET请求,并且可以通过Session变量显示结果。
  4. 如果页面只能使用一次,请放弃会话。