我是一个学习jquery的新手,我想要实现像百度,google那样的自动提示的功能,就是比如在输入"长"的时侯,出现"长春,长沙"的下拉菜单可供用户选择。
关于这个功能,在网上的资料很多了,我的server端的语言用的是python,所以我参考了web.py这个网络框架给的例子http://www.web2pyslices.com/main/slices/take_slice/51
主要的代码是这样的:
index.html:<body>
<label for="country">Search country:</label><br />
<input type="text" id="country" name="country" autocomplete="off" onkeyup="getData(this.value);" /><br />
<div id="ajaxresults"></div>
</body>
function getData(value)
{
if(value != "")
{
$("#ajaxresults").show();
$.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){
$("#ajaxresults").html(result);
});
}
else
{
hide();
}
}
server 端的python 例子 Default.py:db = DAL('sqlite://storage.sqlite')db.define_table('country',
Field('iso'),
Field('name'),
Field('printable_name'),
Field('iso3'),
Field('numcode'))def index():
return dict()def ajaxlivesearch():
partialstr = request.vars.values()[0]
query = db.country.printable_name.like('%'+partialstr+'%')
countries = db(query).select(db.country.printable_name)
items = []
for (i,country) in enumerate(countries):
items.append(DIV(A(country.printable_name, _id="res%s"%i, _href="#", _onclick="copyToBox($('#res%s').html())"%i), _id="resultLiveSearch")) return TAG[''](*items)结果是在index.html里面输入数据之后,下拉菜单出现了但是空的。
$.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){$("#ajaxresults").html(result);
这一行没有成功运行。我知道这个例子是web framework做的,可能需要改动一下,我该怎么改这个语句呢?我弄好久都没弄好,只好到这里来求助了,先谢谢了!
关于这个功能,在网上的资料很多了,我的server端的语言用的是python,所以我参考了web.py这个网络框架给的例子http://www.web2pyslices.com/main/slices/take_slice/51
主要的代码是这样的:
index.html:<body>
<label for="country">Search country:</label><br />
<input type="text" id="country" name="country" autocomplete="off" onkeyup="getData(this.value);" /><br />
<div id="ajaxresults"></div>
</body>
function getData(value)
{
if(value != "")
{
$("#ajaxresults").show();
$.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){
$("#ajaxresults").html(result);
});
}
else
{
hide();
}
}
server 端的python 例子 Default.py:db = DAL('sqlite://storage.sqlite')db.define_table('country',
Field('iso'),
Field('name'),
Field('printable_name'),
Field('iso3'),
Field('numcode'))def index():
return dict()def ajaxlivesearch():
partialstr = request.vars.values()[0]
query = db.country.printable_name.like('%'+partialstr+'%')
countries = db(query).select(db.country.printable_name)
items = []
for (i,country) in enumerate(countries):
items.append(DIV(A(country.printable_name, _id="res%s"%i, _href="#", _onclick="copyToBox($('#res%s').html())"%i), _id="resultLiveSearch")) return TAG[''](*items)结果是在index.html里面输入数据之后,下拉菜单出现了但是空的。
$.post("{{=URL(r=request,f='ajaxlivesearch')}}",{partialstr:value},function(result){$("#ajaxresults").html(result);
这一行没有成功运行。我知道这个例子是web framework做的,可能需要改动一下,我该怎么改这个语句呢?我弄好久都没弄好,只好到这里来求助了,先谢谢了!
解决方案 »
- jquery基本特效,等待中
- js如何获得下拉列表的值,并把这个值赋给文本框
- 帮我看下,刚学JS。。
- 竖排多极菜单
- 有对jquery感兴趣的朋友吗?
- 我修改别人的在线输入法 但是遇到问题
- 看看这段源代码 请各位帮忙高手找一下错误
- [求助]<a href="ProjectLayout_Query.aspx?QueryType='+document.all('ip_hid_QueryType').value">错在哪里?
- JavaScript中能否使用继承机制?
- 谁有ah__fu (阿福) 发的TreeView(tv2.0.js)源码共享一下
- check 单击特效,怎么做
- jQuery重写的Select , 达人进来帮看怎么实现selectedIndex ~
alert(data);
});如果值是整数可以不用加双引号
alert(data);
});
谢谢,这个我知道,但在这个例子中,是引发Default.py 里面的那个ajaxlivesearch 函数,然后在函数中搜索数据库。 再把返回的结果格式化。那怎么改呢?是不是
$.post("Default.py?ajaxlivesearch",{partialstr:value},function(result){$("#ajaxresults").html(result);