【发布时间】:2015-01-27 23:37:27
【问题描述】:
我目前正在处理具有许多字段的搜索表单,我希望该表单生成的链接尽可能短。
因此,我需要防止 url 中出现空变量或未定义变量。
我将做一个简短的例子来说明我正在尝试做的事情:
<form method="get">
<input type="text" name="variable_one"/>
<select name="variable_two">
<!--options-->
</select>
<select name="variable_three">
<!--options-->
</select>
<input type="submit" value="Submit form!"/>
</form>
在这种情况下,默认情况下,如果我用字符串“foo”填充第一个字段,然后提交表单,则 url 将如下所示:
example.com/search?variable_one=foo&variable_two=&variable_three=
我需要删除空变量,如下所示:
example.com/search?variable_one=foo
空的 url 变量在这种情况下没有用处,删除它们会使链接更容易使用,或者至少更短。
我认为 javascript 拥有答案,但我目前不知道如何实现。
【问题讨论】:
-
为什么 GET 不是 POST?
-
因为,正如我所描述的,我希望用户能够分享或保存他们的搜索查询,我认为这意味着使用 url 变量,因此是 GET 方法。
-
JS 实际上无法访问生成的 URL,但是您可以使用一些工具从表单构建 queryString,jQuery 内置了它。你可能需要一个 replace() 调用来去除空。您还可以删除任何空输入 onsubmit() 的名称,它应该从 key=value 对中删除。
-
这个问题,已经被问过并得到了答案:见stackoverflow.com/questions/21271525/…
标签: javascript html