在触发表单的“提交”事件时,有可能捕获表单生成的URL吗?
我知道我可以从数据生成URL
我不是在说表单的动作URL
我是说?field=value&other-input-name=value& ...部分
设想情况:
我们有一个表单和一个JavaScript脚本,它向JavaScript发送Ajax请求。
我通常是这样的:
现在,我想知道,通常(对非Ajax请求)触发'submit‘时,URL由表单构造,然后表单使用该URL向PHP对应方发送数据。
我怎么能“捕获”那个URL呢?没有任何线索从事件本身似乎没有存储,或至少我还没有找到它。
一定是在什么地方!
发布于 2015-02-04 23:52:50
简单地说,你做不到。你能做的最好就是自己收集表单字段的值,或者使用jQuery的.serialize()函数,它完全按照您的预期返回这些值:
name=value&name2=value2发布于 2019-07-29 08:50:03
对于对象URLSearchParams和FormData来说,这是可能的,也是容易的。
FormData是表单的对象表示,用于与fetch API一起使用。它可以由以下现有元素构造:
let form = document.forms[0];
let formData = new FormData(form);然后是URLSearchParams对象,它可以用来构建查询字符串:
let search = new URLSearchParams(formData);现在只需调用搜索对象上的toString函数:
let queryString = search.toString();完成了!
发布于 2015-02-04 23:42:47
如果您的意思是获取表单的操作URL,则可以这样检索该URL:
document.getElementById("form-id").action如果您正在使用jQuery并假设您正在执行Ajax请求,则如下所示:
var el = $('#form-id');
$.ajax({
type: el.attr('method'),
url: el.attr('action'),
data: el.serialize(),
context: this
}).done(callback);https://stackoverflow.com/questions/28333613
复制相似问题