用jquery写的自动提示效果

作者:亮亮 来源:亮亮blog 时间:2008-06-17 14:27:00 

在填写表单的时候为了让用户有更好的体验,有时需要根据用户的输入出现提示共用户选择,我这个就是根据输入的内容,从数据库取出相关内容以供选择,这样填写起来就方便快捷多了。

支持上下键和鼠标选择。

好了,废话少说,看演示。

自动提示演示

js代码

<script type="text/javascript">
var a_i;
function showGs(event){
if($.browser.msie){
     var keyStr=event.keyCode;
}
else var keyStr=event.which;
if(keyStr!=38&&keyStr!=40&&keyStr!=13){
    $("#ts").empty();
    var vsGsName=escape($("#sGsName").val());
    if(vsGsName!=""){
        $("#ts").html("正在加载...");
        $.post("s.asp",{sGsName:vsGsName},function(m){
            $("#ts").html(unescape(m));
            $("#ts>a").bind("click",vst);
            $("#ts").css("display","block");
            //初始化全局变量
            a_i=-1;
        });
    }
    else $("#ts").css("display","none");
}
else{
     //使用键盘上下键选择
     if($("#ts").css("display")=="block"){
         //得到选择列表的长度
         var aLen=$("#ts>a").length;
         var _aLen=Number(aLen)-1;
         //按下键盘向下方向键
         if(keyStr==38){
             if(a_i>=0&&a_i<=_aLen) $("#ts>a").get(a_i).style.backgroundColor="";
             a_i=Number(a_i)-1;
             if(a_i<0) a_i=_aLen;
             $("#ts>a").get(a_i).style.backgroundColor="#CCCCCC";
         }
         //按下键盘的向上方向键
         else if(keyStr==40){
             if(a_i>=0&&a_i<=_aLen) $("#ts>a").get(a_i).style.backgroundColor="";
             a_i=Number(a_i)+1;
             if(a_i>=aLen) a_i=0;
             $("#ts>a").get(a_i).style.backgroundColor="#CCCCCC";
         }
         //按下回车键
         else if(keyStr==13){
             var entLiText=$("#ts>a").get(a_i).innerHTML;
             $("#sGsName").val(entLiText);
             $("#ts").css("display","none");
         }
    }
}
}

function vst(){
    var liText=$(this).text();
    $("#sGsName").val(liText);
    $("#ts").css("display","none");
}
//返回查询的公司的信息
function gsInfo(){
    var vsGsName=$("#sGsName").val();
    if(vsGsName!=""){
        $.post("addEmp1_1.asp",{sGsName:vsGsName},function(m){
            $("#content").html(m);
        });
    }
}
</script>

服务端代码

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%
response.Charset="utf-8"
sGsName=unescape(trim(request.Form("sGsName")))
dbpath="demo.mdb"
sqlStr="select top 5 sgName from cominfo where sgName like '%"&sGsName&"%'"
connstr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(dbPath)
set conn=server.CreateObject("adodb.connection")
conn.open connstr
set rs=conn.execute(sqlStr)
if not rs.bof and not rs.eof then
do while not rs.eof
str=str&"<a>"&rs("sgName")&"</a>"
rs.movenext
loop
else
str="<a>没有此公司</a>"
end if
rs.close
set rs=nothing
set conn=nothing
response.Write(escape(str))
%>
标签:jquery,提示,用户,鼠标
0
投稿

猜你喜欢

  • Oracle数据库游标使用大全

    2008-03-04 18:24:00
  • 有效LOGO设计的最重要的提示

    2010-06-09 12:05:00
  • 玩体验,先忘掉自己

    2010-01-30 13:36:00
  • 自动生成sql语句

    2008-05-09 12:42:00
  • 比较规范的验证Email地址是否正确的正则表达式

    2009-07-28 17:55:00
  • 让ExtJs的combobox不显示HTML……

    2009-05-31 17:01:00
  • Access数据库安全问答

    2007-08-23 15:28:00
  • word-wrap同word-break的区别

    2007-10-24 20:08:00
  • asp防止同时登陆的问题

    2007-10-26 12:19:00
  • 你是一个职业的页面重构工作者吗?

    2008-09-29 12:07:00
  • 开心网让人很不开心

    2009-04-05 15:56:00
  • asp dictionary对象的用法

    2011-04-14 11:09:00
  • asp如何编写一个DNS LOOKUP程序?

    2009-11-07 18:47:00
  • 用户体验的另一种认识

    2007-10-25 12:36:00
  • oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)

    2009-06-19 17:21:00
  • Python处理mysql数据库

    2010-12-03 16:23:00
  • JavaScript库jQuery入门简介

    2007-10-17 11:43:00
  • 再说淘宝的评价和信用机制

    2008-07-10 12:43:00
  • 窥探jQuery——面向JavaScript程序员

    2008-06-17 14:35:00
  • asp的分词技术

    2007-08-25 17:50:00
  • asp之家 网络编程 m.aspxhome.com