【问题标题】:How to get JQuery to perform the same action as a html form如何让 JQuery 执行与 html 表单相同的操作
【发布时间】:2013-02-04 23:19:33
【问题描述】:

我在尝试让 JQuery 执行与表单执行相同的操作时遇到问题。我有以下表格,完全符合我的要求:

<form method='get' action='/editor'>
  <input name='r'>
  <input name='c'>
  <input name='t'>
  <input type='submit'>
</form>

/editor 的服务器上的处理程序只是用 url 中的 r、c 和 t 参数重定向页面。这也完全符合我的要求。

现在,我正在尝试做完全相同的事情,但使用 JQuery,这就是我目前所拥有的:

$.get("/editor", { r: "foo", c: "bar", t: "meow" } );

从控制台日志中可以看出,请求已发送:XHR 已完成加载,但页面未重定向到 /editor

我的问题是如何在 JQuery 中执行与 html 表单完全相同的功能?

谢谢大家的帮助:)

【问题讨论】:

  • 所以您希望拥有与 HTML 表单通常的行为完全相同的行为?为什么不正常使用 HTML 表单?
  • 因为我要发送的信息存储在 Javascript 变量中。用户不输入它们。

标签: jquery forms get


【解决方案1】:

您必须自己重定向到/editor。如果您想完全按照表单通常所做的工作(包括重定向)来做,那么让 JavaScript 完全没有意义。但是,既然你问了:

$.get(/* what you have */).done(function () { window.location = '/editor'; });

【讨论】:

  • 我不能这样做,因为我需要 GAE 上的处理程序重定向到 /editor 以便发送更多信息
  • 什么是“GAE 处理程序”?那么您是否要重定向到 /editor?
  • 其实我可以做 window.location = '/editor?r=' + r + '&c=" + c + "&t=" + t 然后我就不需要去服务器。谢谢我从来不知道 window.location
【解决方案2】:

为了记录,你也可以通过Javascript给输入元素一个值,然后:

document.forms["id_of_the_form"].submit();

也许它更优雅。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-27
    • 2013-05-20
    • 1970-01-01
    相关资源
    最近更新 更多