我有一个带有文本输入的表单,其中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>
Run Code Online (Sandbox Code Playgroud)
这是我的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>
Run Code Online (Sandbox Code Playgroud)
如果用户键入ACME Co.,纽约,纽约,则生成的URL为
http://example.com?place=ACME Co.%2CNew York%2C NY
看到空间没有编码?我甚至尝试添加,place = place.replace(/\s/g, '+')但编码后似乎没有用.我究竟做错了什么?谢谢你的协助.
怪火狐!发现空间正在被正确编码,但Firefox并没有显示编码空间,即使它们是.在Internet Explorer 10和Google Chrome中测试,它们都以编码格式显示空格.感谢Adam为小提琴http://jsfiddle.net/VYDcv/
我不确定你看到了什么,但encodeURIComponent确实逃脱了空间角色.
根据您的代码看到这个小提琴:http://jsfiddle.net/VYDcv/
如果您键入"Hello world",它将以a替换为空格提醒您%20.
警报结果: http://example.com?place=Hello%20World
当您设置浏览器时document.location.href,它可能会将%20背面更改为地址栏中的空格,但它正在被javascript转义.
| 归档时间: |
|
| 查看次数: |
20576 次 |
| 最近记录: |