当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Autocomplete Textbox Example javascript实现自动完成成功

Javascript
js select 标签选定项的值获取代码
js GridView 实现自动计算操作代码
Discuz 公告效果(自动换行,无间隙滚动)
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
JS 常用校验函数
HTML代码中标签的全部属性 中文注释说明
input 高级限制级用法
js onpropertychange输入框 事件获取属性
Javascript 生成无限下拉列表实现代码
javascript 极速 隐藏/显示万行表格列只需 60毫秒
用JavaScript实现单继承和多继承的简单方法
javascript 闭包函数做显隐内容
js 页面模块自由拖动实例
js Flash插入函数免激活代码
setTimeout 不断吐食CPU的问题分析
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
js 浏览器版本及版本号判断函数2009年
Javascript 原型和继承(Prototypes and Inheritance)
HTML 自动伸缩的表格Table js实现
两个INPUT同步输入的方法小结 兼容IE和firefox

Javascript 中的 Autocomplete Textbox Example javascript实现自动完成成功


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 350 ::
收藏到网摘: n/a

复制代码 代码如下:

<SCRIPT language=JScript type=text/javascript>
var isOpera = navigator.userAgent.indexOf("Opera") > -1;
var isIE = navigator.userAgent.indexOf("MSIE") > 1 && !isOpera;
var isMoz = navigator.userAgent.indexOf("Mozilla/5.") == 0 && !isOpera;
function textboxSelect (oTextbox, iStart, iEnd) {
switch(arguments.length) {
case 1:
oTextbox.select();
break;
case 2:
iEnd = oTextbox.value.length;
/* falls through */
case 3:
if (isIE) {
var oRange = oTextbox.createTextRange();
oRange.moveStart("character", iStart);
oRange.moveEnd("character", -oTextbox.value.length + iEnd);
oRange.select();
} else if (isMoz){
oTextbox.setSelectionRange(iStart, iEnd);
}
}
oTextbox.focus();
}
/*
function textboxReplaceSelect (oTextbox, sText) {
if (isIE) {
var oRange = oTextbox.createTextRange();
oRange.text = sText;
oRange.collapse(true);
oRange.select();
} else if (isMoz) {
var iStart = oTextbox.selectionStart;
oTextbox.value = oTextbox.value.substring(0, iStart) + sText + oTextbox.value.substring(oTextbox.selectionEnd, oTextbox.value.length);
oTextbox.setSelectionRange(iStart + sText.length, iStart + sText.length);
}
oTextbox.focus();
}
*/
function autocompleteMatch (sText, arrValues) {
for (var i=0; i < arrValues.length; i++) {
if (arrValues[i].indexOf(sText) == 0) {
return arrValues[i];
}
}
return null;
}
function autocomplete(oTextbox, oEvent, arrValues) {
switch (oEvent.keyCode) {
case 38: //up arrow
case 40: //down arrow
case 37: //left arrow
case 39: //right arrow
case 33: //page up
case 34: //page down
case 36: //home
case 35: //end
case 13: //enter
case 9: //tab
case 27: //esc
case 16: //shift
case 17: //ctrl
case 18: //alt
case 20: //caps lock
case 8: //backspace
case 46: //delete
return true;
break;
default:
// 下面这一行用处不大(被注释)
//textboxReplaceSelect(oTextbox, isIE ? oTextbox.value/*oEvent.keyCode*/ : oEvent.charCode);
var iLen = oTextbox.value.length;
var sMatch = autocompleteMatch(oTextbox.value, arrValues);
if (sMatch != null) {
oTextbox.value = sMatch;
textboxSelect(oTextbox, iLen, oTextbox.value.length);
}
return false;
}
}
</SCRIPT>
<SCRIPT>
var arrValues = ["red", "orange", "yellow", "green", "blue", "indigo", "violet", "brown"];
</SCRIPT>
<H2>Autocomplete Textbox Example</H2>
<P>Type in a color in lowercase:输入一个以小写字母开头的颜色(英文单词,比如:r、 b等)<BR><INPUT id=txt1 onkeyup="return autocomplete(this, event, arrValues)"></P>