【问题标题】:URL - Encoding (JavaScript) method="GET"URL - 编码 (JavaScript) 方法="GET"
【发布时间】:2011-01-07 19:14:07
【问题描述】:

我有一个带有一些输入字段的表单 (6)。当我点击提交按钮“我想格式化 URL”时:

/actionname?input1|input2|input3|input4|input5|input6

也许对于空值:

/actionname?input1|input2||input4||input6

还可能是用户单击提交按钮时的时间戳。

这可以使用 javascript 来完成吗?

谢谢,

乍得

【问题讨论】:

  • 您为什么要这样做?您将使用它作为分隔符并在服务器上拆分它?
  • 是的...但不是 /actionname?input1=something1&input2=something2&input3=something3 我想要 /actionsname?something1|something2|something3|something4

标签: javascript html forms url urlencode


【解决方案1】:

如果您使用任何像 jQuery 这样的 java 脚本库,您可以序列化以查询字符串格式提供数据的表单。例如:see here

【讨论】:

  • 这会构建一个查询字符串,就像在表单上通过标准 GET 提交获得的查询字符串一样。 OP 想要自定义格式的 URL。 serialize() 不会那样做。
【解决方案2】:

可以通过 javascript 完成,但我不明白您为什么要这样做。您必须使用表单的 onsubmit 事件,遍历表单元素,将每个值附加到您提供的格式的 url 字符串,然后将 window.location 设置为该 url 字符串。

对于禁用 javascript 的用户,表单仍会以“正确”方式提交,这就是为什么我不明白您为什么要更改查询字符串的格式。

【讨论】:

  • 我有一个存储的 proc 准备好解析来自 url "/actionname?" 的值此调用会将值插入表中。对我来说使用“|”可以很容易地被我的网络服务解析
【解决方案3】:

即使我看不出您需要这个 :) 的任何理由,您也可以使用 onSubmit 事件来创建正确的 url 并重定向到它。

【讨论】:

    【解决方案4】:

    您如何使用XMLHTMLRequest 来执行您的请求。

    您使用 javascript 在字符串中构建您的 URL,然后设置 XHR 以使用 GET(同步或同步,您的选择)提交到该 URL。

    这样您还可以避免踩到onsubmit 表单事件的脚趾。

    或者,一个简单的解决方法是在字符串中构造您的 URL,然后在使用 submit() 方法提交表单之前将表单 action 属性设置为该字符串。

    【讨论】:

      猜你喜欢
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-15
      • 1970-01-01
      • 1970-01-01
      • 2010-11-09
      相关资源
      最近更新 更多