javascript - 将多个输入序列化为单个参数
问题描述
我有以下表格:
<form method="get">
<input id="search-input" name="search" value="inbox" placeholder="Search ..." type="text">
<input id="filter-type" name="filter" value="draft" type="text">
<input id="filter-start-date" name="filter" value="10/10/2020" type="text">
<button type="submit">Search</button>
</form>
提交表单时,生成的 URL 为:https://example.com/?search=inbox&filter=draft&filter=10%2F10%2F2020
这导致发送 1 个search
参数和 2 个filter
参数:
search=inbox
filter=draft
filter=10%2F10%2F2020
我想做的是发送 1 个search
参数和值,以及 1 个filter
带有 2 个值的参数。
理想情况下,网址如下所示:
https://example.com/?search=inbox&filter=draft&10%2F10%2F2020
结果是 1 个search
参数,以及 1 个filter
带有 2 个值的参数被发送:
search=inbox
filter=draft&10%2F10%2F2020
我可以将这 2 个过滤器输入字段加入到单个查询字符串中吗?
$( "#target" ).submit(function( event ) {
var datastring = $("#target").serialize();
console.log(datastring);
event.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.2/jquery.min.js"></script>
<form id="target" method="get">
<input id="search-input" name="search" value="inbox" placeholder="Search ..." type="text">
<input id="filter-type" name="filter" value="draft" type="text">
<input id="filter-start-date" name="filter" value="10/10/2020" type="text">
<button type="submit">Search</button>
</form>
解决方案
在查询字符串中发送 2 个输入字段值并没有错,但您必须在服务器端处理它。即,您将需要知道拆分 2 个值。
$( "#target" ).submit(function( event ) {
var datastring = '?search='+$("#search-input").val()+'&filter='+$("#filter-type").val();
//datastring = datastring + add a delimiter in here
datastring = datastring + $("#filter-start-date").val();
console.log(datastring);
event.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.2/jquery.min.js"></script>
<form id="target" method="get">
<input id="search-input" name="search" value="inbox" placeholder="Search ..." type="text">
<input id="filter-type" name="filter" value="draft" type="text">
<input id="filter-start-date" name="filter" value="10/10/2020" type="text">
<button type="submit">Search</button>
</form>
推荐阅读
- python - 连接到 azurewebsites.net 上的 API 以下载 JSON 文件
- firebase-realtime-database - 从 firebase 发送私人消息
- javascript - 使文本出现在悬停更改 div 高度
- python - python如何从请求中获取标头
- css - 如何在反应样式组件中设置以前的兄弟姐妹的样式?
- powerbi - 如何从 PowerBI 中的表中创建具有加权平均值的数据透视表?
- imagemagick - 如果使用 bashscript ubuntu 在 exif 中找到方向,如何正确删除 exif 数据和旋转图像
- r - R替代full_join,right_join,合并而不增加行?
- c++ - VBA 的 C++ dll - 读取/编码字符串的问题
- python - Elasticsearch for python 无法建立与 Elastic Cloud 的新连接