当空格键进入时,ajax停止

时间:2012-06-19 04:33:22

标签: php jquery ajax

我有一种奇怪的情况。 我的页面如下:

<html>
<script>
$(document).ready(function(){
$("input").keyup(function(){
$("#mydiv").load("showlist.php?q="+this.value);
});
</script>
<input><br>
<div id="mydiv">ajax content appear in here</div>
</html>

我的showlist.php很简单:

echo $_GET['q'];

当我在文本框中输入ie: abcde 时页面运行正常{这意味着mydiv标签中的内容被showlist.php的输出替换}。 但是当我键入 abcd efgh {这意味着它在字符串中有一个空格}时,div中没有​​任何内容。它只是空白! 我做错了什么?

2 个答案:

答案 0 :(得分:2)

您应该在使用encodeURIComponent()

将字符串传递给服务器之前对其进行编码

$("#mydiv").load("showlist.php?q="+encodeURIComponent(this.value));

关于encodeURIComponent() vs encodeURI()

的修改:A useful SO question

答案 1 :(得分:0)

''(空格)需要被urlencoded到%20('+'也会)

使用以下代码对您的URI进行编码:

var newUri = 'showlist.php?' + encodeURI("q="+this.value);
$("#mydiv").load(newUri);