我有一个带有 id txtPlace的文本输入的表单,用户将输入输入,并将作为 url 查询传递给服务器。我正在尝试使用 encodeURIComponent(),但它不是编码空格。这是我的简化代码
<div class="searchBoxRow">
<input type="text" id="txtPlace" size="55" placeholder="Enter place to search"/>
<a href="#" id="btnSearch">Search</a>
</div>
这是我的 javascript
<script type="text/javascript">
$(function () {
$('#btnSearch').on('click', function (e) {
e.preventDefault;
var place = encodeURIComponent($('#txtPlace').val());
var url = "http://example.com?place=" + place;
document.location.href = url;
});
});
</script>
如果用户输入ACME Co.,New York, NY,生成的 url 是
http://example.com?place=ACME Co.%2CNew York%2C NY
看到空格是未编码的吗?我什至尝试添加place = place.replace(/\s/g, '+')
,但编码后似乎不起作用。我究竟做错了什么?感谢你的协助。
更新:
怪火狐!发现空格已正确编码,但Firefox未将空格显示为已编码,即使它们已编码。在Internet Explorer 10和Google Chrome中测试,它们都以编码格式显示空间。感谢亚当的小提琴http://jsfiddle.net/VYDcv/