html - 发送不带“?”的表格 字符和值的名称
问题描述
我有这个代码:
<!DOCTYPE html>
<html>
<head>
<title>Form</title>
</head>
<body>
<form action="https://api.pagar.me/1/zipcodes/">
<input type="text" placeholder="cep" name="cep">
<input type="submit">
</form>
</body>
</html>
当我输入一个数字时,例如 05423110,我在地址栏上看到的是“ https://api.pagar.me/1/zipcodes/?cep=05423110 ”,但我想要“ https://api .pagar.me/1/zipcodes/05423110 ”。
我需要对我的代码进行哪些更改?
谢谢!
解决方案
我会这样做。另一个答案将有一个问题,它可能会附加两次。
我还将它设置为禁用按钮以方便用户使用(以防服务器需要一段时间才能响应)。
该解决方案确实使用了 jQuery,但您可能需要进行其他简单的 DOM 操作,这将非常有帮助。
因为您不希望查询字符串在那里,但您必须拥有它GET
,所以不可能不将查询字符串附加到 URL(因为这是 GET 请求所做的)。
相反,我使用 javascript 来简单地重定向到正确的 URL,并完全忽略 GET/POST 表单。
<!DOCTYPE html>
<html>
<head>
<title>Form</title>
</head>
<body>
<form action="https://api.pagar.me/1/zipcodes/">
<input type="text" placeholder="cep" name="cep">
<input type="submit">
</form>
</body>
</html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
(function() {
var form = $('form');
var baseUrl = form.attr('action');
$('form').submit(function(e) {
e.preventDefault();
form.find('[type="submit"]').prop('disabled', true);
window.location.href = baseUrl + form.find('[name="cep"]').val();
});
})();
</script>
推荐阅读
- r - dplyr mutate 将单列值替换为 ifelse
- javascript - 从平面到树的Javascript数组
- azure - Creating Neo4j vm Terraform Message="从 Marketplace 镜像创建虚拟机需要请求中的 Plan 信息
- git - 如何从 git bash 屏幕中删除文件并从存储库中删除该文件?
- node.js - 未找到元数据。可能安装了不止一次的类验证器版本。你需要扁平化你的依赖
- codeigniter - 更新多次上传 CodeIgniter 上的选定文件
- linux - Linux 到 Windows PC 通过 Socket 通信
- javascript - 如何在从角度多选中删除值之前放置javascript警报提示
- python - 将字符串中每个字符的ascii转换为二进制
- mysql - 如何删除 MySQL 的 JSON 列中的键