考虑以下 HTML 标记:
<form method="GET">
<input type="text" name="a" value="one">
<input type="text" name="b" value="two">
<input type="text" name="c" value="three">
<input type="submit">
</form>
如果上面没有 JS,它会自然地加载带有查询字符串 ?a=one&b=two&c=three
的操作页面(在本例中为自身)。
但是,我不想加载操作页面并使用一些 JS 来阻止它:
document.querySelector("form").addEventListener("submit", function(e) {
// Do some stuff
e.preventDefault();
});
现在的问题是没有生成查询字符串,我必须使用以下方法手动计算它:
var queryString = "?" + [].map.call(document.querySelectorAll("input[type=text]"), function(element) {
return element.name + "=" + element.value;
}).join("&");
console.log(queryString); // Displays "?a=one&b=two&c=three"
有没有什么办法可以避免这种情况并获取本来应该发送到操作页面的查询字符串?
编辑:我正在使用纯 JavaScript,我不是在寻找涉及 jQuery 或其他 JS 框架的解决方案。
最佳答案
我不这么认为。要生成请求,您必须提交。
关于javascript - 在不调用操作页面的情况下检索表单提交生成的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21367367/