我正在尝试使用python创建一个AJAX实时搜索(例如Google Suggest)。我是AJAX的新手,所以我开始阅读一些教程和其他有用的文档。我找到了一个例子,http://www.w3schools.com/ajax/ajax_aspphp.asp,这基本上是我想要完成的,但这个例子仅适用于asp / php。我到目前为止管理程序的python部分,但是我得到一个未定义的错误。
下面是我的javascript代码(test.js,与示例中的代码基本相同):
function showHint(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","search.py?q="+str,true);
xmlhttp.send();
}
在firefox 4中,它出现错误“str is undefined”。
下面是我的python代码的html部分:
<html>
<head>
<title>Live Search</title>
<script src="http://localhost:8000/test.js" type="text/javascript"></script>
</head>
<body>
<h1> Cities </h1>
Enter Anything: <input type="text" id="sname" onkeyup="showHint(this.text)">
%(search)s
</body>
</html>
注意:在我使用onkeyup =“showHint(this.id)之前,但由于某些原因它不起作用..它不断传递”sname“作为查询而不是我在输入字段中键入的内容。
请帮忙
答案 0 :(得分:2)
<input>
元素没有属性文本。这就是为什么this.text
和更晚str
未定义的原因。也许<input type="text" id="sname" onkeyup="showHint(this.value)">
会做你想做的事。