【发布时间】:2017-12-15 14:29:50
【问题描述】:
当我提交表单时,它会在浏览器 url 中添加 hidden 输入作为查询字符串。
$('form').on("submit", function(event) {
event.preventDefault();
// what i tried
console.log($(this).attr('action'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="GET">
<input type="hidden" name="d" value="2,1">
<input type="submit" value="Submit"/>
</form>
这个例子的结果是:
/box?d=2%2C1
但我不想看到%2C(它是逗号),我知道decodeURIComponent,但我知道如何获取这个表单动作并在上面使用这个组件,我试过这个:
decodeURIComponent($(this).attr('action'));
但它返回未定义。
目标:
- 获取表单操作+查询字符串并在其上使用
decodeURIComponent删除%2C或 - 直接用逗号去掉url查询字符串中的
%2C。
我想要这个结果:
/box?d=2,1
【问题讨论】:
-
查询字符串中不能有逗号,必须编码发送
-
但是没有解决办法? @mast3rd3mon
-
是的,在服务器上解码
-
@NullDev 我的意思是,在发送到浏览器 url 之前得到这个
/box?d=2,1,这是一个动作,不是吗? -
但其中哪些确实有效?想想可用性,以及为什么它有多漂亮很重要?
标签: javascript jquery decodeuricomponent