0

当我提交表单时,它将hidden在浏览器 url 中添加输入作为查询字符串。

$('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'));

但它返回未定义。

目标:

  1. 获取表单操作 + 查询字符串并使用decodeURIComponent它来删除%2C OR
  2. 直接用逗号删除%2Curl中的查询字符串。

我想要这个结果:

/box?d=2,1
4

1 回答 1

0

您应该只在服务器端解码 URI,或者如果您以某种方式在客户端收到此请求,则永远不要提交。URI 被编码以实现安全的“传输”(有时必须显式编码)。代码行为符合预期,否则我无法理解您的观点。

于 2017-12-15T14:49:29.627 回答