【问题标题】:React Form not encoding the dataReact Form 未对数据进行编码
【发布时间】:2017-11-23 22:39:21
【问题描述】:

我有一个带有表单的简单 React 无状态组件。

<form
  action="http://externalsite.com/?param1=value1"
  method="get"
  target="_blank"
>
  <input type="text" name="address" id="address" />
  <input
    className="btn"
    type="submit"
    value="Submit"
  />
  </div>
</form>

提交表单后,数据会以

的形式发送到外部站点
http://externalsite.com/?param1=value1&address=word1+word2+word3

如何使用正确的 url 编码提交表单?

http://externalsite.com/?param1=value1&address=word1%20word2%20word3

更新:我知道我可以处理提交事件并在提交之前对其进行手动编码。表单没有自动执行此操作是否有原因?

【问题讨论】:

  • 您是否尝试过使用encodeURIComponent
    externalsite.com" + encodeURIComponent("?param1=value1"} ... >

标签: html forms reactjs


【解决方案1】:

提交表单后,您需要从表单数据创建 url 字符串,如下所示。

(function (address='address', word='word1 and word 2') {

var url = 'somthing.com';
var parm1= `address=${address}`;
var parm2=`word=${word}`;

var url = [url, parm1, parm2];
//here join(&) create a required url
console.log(url.join('&')); })();

【讨论】:

  • 我用我猜的真实问题更新了这个问题。我可以在没有 JavaScript 的情况下进行操作并手动提交。我想知道为什么表单不自动执行此操作。通常纯 HTML 表单会这样做。反应搞砸了吗?
猜你喜欢
  • 2020-12-29
  • 1970-01-01
  • 2017-06-20
  • 2020-11-11
  • 2020-09-05
  • 1970-01-01
  • 2016-10-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多