我想把value="name+asc"放在隐藏字段中。
<input type="hidden" value="name+asc" name="sort" />
但我不能把名字+asc在URL。
我该如何处理这个问题
表单输入的值将在提交表单时被自动正确编码。在application/x-www-form-urlencoded
数据中,+
符号表示一个空格,因此浏览器将其编码为%2B
。
如果要提交数据中包含+
的表单:您拥有的代码很好。
如果要提交一个数据中有空格的表单:使用文字空格。浏览器将为您编码。
如果你想用JavaScript读取表单数据,并在通过encodeURIComponent
方法传递数据时以编程方式构造一个URL(或post request)。
var value = "123+456";
var encodedValue = encodeURIComponent(value);
var url = "http://example.com/?query=" + encodedValue;
如果你想手工构造一个URI(例如用于粘贴到HREF属性中),那么你需要在某处查找编码值。我倾向于在终端中运行node.js,所以我可以快速键入encodeURIComponent('a string literal');
.
据我所知,+将自动分割您的值,除非编码为特殊字符。您可以使用-或_代替+。