html - 发送没有 "?"字符和值名称的表单

标签 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>

关于html - 发送没有 "?"字符和值名称的表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52323236/

相关文章:

javascript - 样式输入类型文件中没有选择文件消息

html - 在纯CSS中设置相对于其 parent 高度的 child 宽度

javascript - 使用 Javascript 为整个 session 加载网站字体

javascript - addEventListener 不工作和一些问题

html - 为什么 flexbox 会这样?

HTML 像素定位和 bootstrap 混淆?

javascript - 如何在href单击和鼠标悬停时播放声音

javascript - 跨元素文件夹链接css,js文件

php - 如何使用 javascript/html/css 模拟 struts 验证

html - 如何使用 CSS 定位文本输入字段?