首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取JavaScript提交时从表单生成的URL

获取JavaScript提交时从表单生成的URL
EN

Stack Overflow用户
提问于 2015-02-04 23:32:52
回答 5查看 25.5K关注 0票数 18

在触发表单的“提交”事件时,有可能捕获表单生成的URL吗?

我知道我可以从数据生成URL

我不是在说表单的动作URL

我是说?field=value&other-input-name=value& ...部分

设想情况:

我们有一个表单和一个JavaScript脚本,它向JavaScript发送Ajax请求。

我通常是这样的:

  • 注册表单的提交事件
  • 防止默认行为
  • 从数据构造URL
  • 使用构造的URL打开HTTP请求

现在,我想知道,通常(对非Ajax请求)触发'submit‘时,URL由表单构造,然后表单使用该URL向PHP对应方发送数据。

我怎么能“捕获”那个URL呢?没有任何线索从事件本身似乎没有存储,或至少我还没有找到它。

一定是在什么地方!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-02-04 23:52:50

简单地说,你做不到。你能做的最好就是自己收集表单字段的值,或者使用jQuery的.serialize()函数,它完全按照您的预期返回这些值:

代码语言:javascript
运行
复制
name=value&name2=value2
票数 4
EN

Stack Overflow用户

发布于 2019-07-29 08:50:03

对于对象URLSearchParamsFormData来说,这是可能的,也是容易的。

FormData是表单的对象表示,用于与fetch API一起使用。它可以由以下现有元素构造:

代码语言:javascript
运行
复制
let form = document.forms[0];
let formData = new FormData(form);

然后是URLSearchParams对象,它可以用来构建查询字符串:

代码语言:javascript
运行
复制
let search = new URLSearchParams(formData);

现在只需调用搜索对象上的toString函数:

代码语言:javascript
运行
复制
let queryString = search.toString();

完成了!

票数 17
EN

Stack Overflow用户

发布于 2015-02-04 23:42:47

如果您的意思是获取表单的操作URL,则可以这样检索该URL:

代码语言:javascript
运行
复制
document.getElementById("form-id").action

如果您正在使用jQuery并假设您正在执行Ajax请求,则如下所示:

代码语言:javascript
运行
复制
var el = $('#form-id');
$.ajax({
    type: el.attr('method'),
    url: el.attr('action'),
    data: el.serialize(),
    context: this
}).done(callback);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28333613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档