网站首页 手机版
 注册 登录
您现在的位置: 畅无忧设计 >> 网页特效 >> 表单按钮 >> 正文
最新文章
· 输入框输入提示代码
· 文本框提示代码
· 让表单ctrl加回车提交
· 简单代码实现JS多级Select联动菜单
· JS验证数字位数
· 带有介绍的Select列表菜单代码
· Js注册等待
· 点击按钮插入文字在文本框
· radio背景颜色选择器
· 表单内容提交等待效果
热门文章
 Js实现点击添加增加一行,点击删除
 DIV中实现input垂直居中
 常用的选择省份城市的联动下拉列表
 JS动态增加删除一组输入框
 jQuery实现Email邮箱地址自动补全代
 Select实现多选
 JS动态批量创建带表单文本框的表格
 JS实现上传本地图片前先预览
 日期选择下拉框
 漂亮的点击弹出的登陆框
相关文章
输入框输入提示代码
带提示的文本搜索框,仿Dell.com
表单文本框得到和失去焦点的效果
应用方向键控制选择项目的文本框
表单文本框文字提示效果
点击将内容加入文本框
指定文本框输入长度并自动转跳到下一个文
Js模仿编辑器中适时改变文本框的大小,包
JS动态批量创建带表单文本框的表格行和列
只能输入大于等于0的整数的文本框
只能输入大于0的整数的文本框
简单实现文本框数值加1或减1
jquery实现文本框弹出热门标签的提示效果
显示在文本框里的Js打字效果代码
将文本框变为只读,禁止输入字符
CSS实现虚线文本框效果
只能输入中文的文本框
只能输入数字和小数点的文本框
只能输入英文和数字的文本框
给文本框添加灰色提示文字
文本框输入提示/自动完成的Js代码
来源:源码爱好者 更新时间:2011/1/18 10:36:39 阅读次数: 我要投稿
△运行 ☉预览 #复制 +收藏
特效代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>文本框输入提示/自动完成功能</title>
<meta http-equiv="content-type" content="text/html;charset=gb2312">
<script type="text/javascript">
function mSift_SeekTp(oObj,nDire){if(oObj.getBoundingClientRect&&!document.all){var oDc=document.documentElement;switch(nDire){case 0:return oObj.getBoundingClientRect().top+oDc.scrollTop;case 1:return oObj.getBoundingClientRect().right+oDc.scrollLeft;case 2:return oObj.getBoundingClientRect().bottom+oDc.scrollTop;case 3:return oObj.getBoundingClientRect().left+oDc.scrollLeft;}}else{if(nDire==1||nDire==3){var nPosition=oObj.offsetLeft;}else{var nPosition=oObj.offsetTop;}if(arguments[arguments.length-1]!=0){if(nDire==1){nPosition+=oObj.offsetWidth;}else if(nDire==2){nPosition+=oObj.offsetHeight;}}if(oObj.offsetParent!=null){nPosition+=mSift_SeekTp(oObj.offsetParent,nDire,0);}return nPosition;}}
function mSift(cVarName,nMax){this.oo=cVarName;this.Max=nMax;}
mSift.prototype={
 Varsion:'v2010.10.29 by AngusYoung | mrxcool.com',
 Target:Object,
 TgList:Object,
 Listeners:null,
 SelIndex:0,
 Data:[],
 ReData:[],
 Create:function(oObj){
  var _this=this;
  var oUL=document.createElement('ul');
  oUL.style.display='none';
  oObj.parentNode.insertBefore(oUL,oObj);
  _this.TgList=oUL;
  oObj.onkeydown=oObj.onclick=function(e){_this.Listen(this,e);};
  oObj.onblur=function(){setTimeout(function(){_this.Clear();},100);};
 },
 Complete:function(){},
 Select:function(){
  var _this=this;
  if(_this.ReData.length>0){
   _this.Target.value=_this.ReData[_this.SelIndex].replace(/\*/g,'*').replace(/\|/g,'|');
   _this.Clear();
  }
  setTimeout(function(){_this.Target.focus();},10);
  _this.Complete();
 },
 Listen:function(oObj){
  var _this=this;
  _this.Target=oObj;
  var e=arguments[arguments.length-1];
  var ev=window.event||e;
  switch(ev.keyCode){
   case 9://TAB
    return;
   case 13://ENTER
    _this.Target.blur();
    _this.Select();
    return;
   case 38://UP
    _this.SelIndex=_this.SelIndex>0?_this.SelIndex-1:_this.ReData.length-1;
    break;
   case 40://DOWN
    _this.SelIndex=_this.SelIndex<_this.ReData.length-1?_this.SelIndex+1:0;
    break;
   default:
    _this.SelIndex=0;
  }
  if(_this.Listeners){clearInterval(_this.Listeners);}
  _this.Listeners=setInterval(function(){
   _this.Get();
  },10);
 },
 Get:function(){
  var _this=this;
  if(_this.Target.value==''){_this.Clear();return;}
  if(_this.Listeners){clearInterval(_this.Listeners);};
  _this.ReData=[];
  var cResult='';
  for(var i=0;i<_this.Data.length;i++){
   if(_this.Data[i].toLowerCase().indexOf(_this.Target.value.toLowerCase())>=0){
    _this.ReData.push(_this.Data[i]);
    if(_this.ReData.length==_this.Max){break;}
   }
  }
  var cRegPattern=_this.Target.value.replace(/\*/g,'*');
  cRegPattern=cRegPattern.replace(/\|/g,'|');
  cRegPattern=cRegPattern.replace(/\+/g,'\\+');
  cRegPattern=cRegPattern.replace(/\./g,'\\.');
  cRegPattern=cRegPattern.replace(/\?/g,'\\?');
  cRegPattern=cRegPattern.replace(/\^/g,'\\^');
  cRegPattern=cRegPattern.replace(/\$/g,'\\$');
  cRegPattern=cRegPattern.replace(/\(/g,'\\(');
  cRegPattern=cRegPattern.replace(/\)/g,'\\)');
  cRegPattern=cRegPattern.replace(/\[/g,'\\[');
  cRegPattern=cRegPattern.replace(/\]/g,'\\]');
  cRegPattern=cRegPattern.replace(/\\/g,'\\\\');
  var cRegEx=new RegExp(cRegPattern,'i');
  for(var i=0;i<_this.ReData.length;i++){
   if(_this.Target.value.indexOf('*')>=0){
    _this.ReData[i]=_this.ReData[i].replace(/\*/g,'*');
   }
   if(_this.Target.value.indexOf('|')>=0){
    _this.ReData[i]=_this.ReData[i].replace(/\|/g,'|');
   }
   cResult+='<li style="padding:0 5px;line-height:20px;cursor:default;" onmouseover="'+
   _this.oo+'.ChangeOn(this);'+_this.oo+'.SelIndex='+i+';" onmousedown="'+_this.oo+'.Select();">'
   +_this.ReData[i].replace(cRegEx,function(s){return '<span style="background:#ff9;font-weight:bold;font-style:normal;color:#e60;">'+s+'</span>';});+'</li>';
  }
  if(cResult==''){_this.Clear();}
  else{
   _this.TgList.innerHTML=cResult;
   _this.TgList.style.cssText='display:block;position:absolute;background:#fff;border:#090 solid 1px;margin:-1px 0 0;padding: 5px;list-style:none;font-size:12px;';
   _this.TgList.style.top=mSift_SeekTp(_this.Target,2)+'px';
   _this.TgList.style.left=mSift_SeekTp(_this.Target,3)+'px';
   _this.TgList.style.width=_this.Target.offsetWidth-12+'px';
  }
  var oLi=_this.TgList.getElementsByTagName('li');
  if(oLi.length>0){
   oLi[_this.SelIndex].style.cssText='background:#36c;padding:0 5px;line-height:20px;cursor:default;color:#fff;';
  }
 },
 ChangeOn:function(oObj){
  var oLi=this.TgList.getElementsByTagName('li');
  for(var i=0;i<oLi.length;i++) {
   oLi[i].style.cssText='padding:0 5px;line-height:20px;cursor:default;';
  }
  oObj.style.cssText='background:#36c;padding:0 5px;line-height:20px;cursor:default;color:#fff;';
 },
 Clear:function(){
  var _this=this;
  if(_this.TgList){
   _this.TgList.style.display='none';
   _this.ReData=[];
   _this.SelIndex=0;
  }
 }
}
</script>
</head>
<body>
友情提示:文本框屏蔽了回车,因此回车键暂不可用。
<form name="salefrm" method="post" action="?action=add">
<input type="text" id="abc" value="J" size="40">
<input type="text" id="we" value="河" size="60">
</form>
<script type="text/javascript">
//建立实例,第一个参数是实例对象的名称,第二个是最多显示的数量
var oo=new mSift('oo',20);
//数据
oo.Data=['JavaScript特效','JS效果','Js代码','Java特效','Javascript代码','JS脚本','Js是什么意思','Java','Java游戏'];
//指定文本框对象建立特效
oo.Create(document.getElementById('abc'));
var oxo=new mSift('oxo',20);
oxo.Data=['河北省','河南省','河源市','河套平原','河北承德'];
oxo.Create(document.getElementById('we'));
</script>
</body>
</html>
△运行 ☉预览 #复制 +收藏
特效说明:

  文本框输入自动匹配或提示的功能,输入内容,自动匹配对应数据,可用上下键控制选项、按回车键选择,也可以直接用鼠标选择。代码:建立实例,第一个参数是实例对象的名称,第二个是最多显示的数量。

  • 上一篇文章:
  • 下一篇文章:
  • 关于我们 - 联系我们 - 广告服务 - 在线投稿 - 友情链接 - 网站地图 - 版权声明
    CopyRight 2008-2010, CWYDESIGN.COM - 畅无忧设计, Inc. All Rights Reserved
    滇ICP备09005765号