zoukankan      html  css  js  c++  java
  • 可输可选可自动提示,还可增加一个!

    HTML 页面

    <html>

    <head>

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    <title>autoadd</title>

    <link href="autoadd.css" rel="stylesheet" type="text/css" />

    <script src="../js/jquery-1.6.2.js" type="text/javascript"></script>

    <script type="text/javascript" src="autoadd.js"></script>

    <script type="text/javascript" src="../js/autoClue.js"></script>

    </head>

    <body>

    <div id="auto">

    <!-- <div id="autohead">可输可选可自动提示,还有增加一个的功能!</div> -->

    <div class="autobody" id="autobody0">

    <div id="selectDiv0">

    <select id="select0" class="sele">

    </select>

    </div>

    <input type="text" id="txt0" class="txt" />

    <ul id="clue0" class="clue">

       </ul>

    <input id="addone" type="button" value="增加一个" />

    </div>

    </div>

    <div>今天天气不错,挺风和日丽的</div>

    </body>

    </html>

    CSS页面 autoadd.css

    *{
    	padding : 0px;
    	margin : 0px;
    }
    #autohead
    {
    	color : yellow;
    	padding : 5px;
    }
    .autobody
    {
    	position : relative;
    	margin-top : 5px;
    	margin-bottom : 5px;
    }
    .txt
    {
    	position : absolute;
    	top : 0px;
    	left : 0px;
    	width : 280px;
    }
    .sele
    {
    	position : absolute;
    	top : 0px;
    	left : 0px;
    	width : 300px;
    }
    .clue li
    {
    	list-style-type : none;
    	padding: 2px 0px 2px 4px;
    	cursor: default;
    }
    ul.clue
    {
    	position: absolute;
    	left: 0px;
    	top: 18px;
    	z-index: 10;
    	 282px;
    	border: 1px solid #AAA;
    	background-color: #FFF;
    }
    #addone
    {
    	position: relative;
    	left: 300px;
    	top : 0px;
    }
    .removeone
    {
    	position: relative;
    	left: 300px;
    	top : 0px;
    }
    

      JavaScript代码 autoadd.js

    $(document).ready(function(){
    	var content = ["aaa", "aaab", "aaaccc", "dda", "dddd", "dddee", "dae"];
    	var maxIndex = 0;
    	var txt0 = document.getElementById("txt0");
    	var clue0 = document.getElementById("clue0");
    	var selectDiv0 = document.getElementById("selectDiv0");
    	var strselect0 = '<div id="selectDiv0"><select id="select0" class="sele">', i, len = content.length;
    	var addone = document.getElementById("addone");
    	var auto = document.getElementById("auto");
    	for(i = 0; i < len && i < 20; i++){
    		strselect0 += '<option>' + content[i] + '</option>';
    	}
    	strselect0 += '</select></div>';
    	selectDiv0.innerHTML = strselect0;
    	var select0 = document.getElementById("select0");
    	select0.onchange = function(){
    		var num = this.selectedIndex;
    		var seltxt = this.options[num].text;
    		txt0.value = seltxt;
    	};
    	autoClue.clue(content, txt0, clue0, "请输入***");
    	addone.onclick = function(){
    		var newindex = maxIndex + 1;
    		var selectOptStr = '<select id="select' + newindex + '" class="sele">', i;
    		for(i = 0; i < content.length; i++){
    			selectOptStr += '<option>' + content[i] + '</option>';
    		}
    		selectOptStr += '</select>';
    		var domStr = '<div class="autobody" id="autobody'
    			+ newindex
    			+'"><div id="selectDiv'
    			+ newindex
    			+'"></div><input type="text" id="txt'
    			+ newindex
    			+'" class="txt" /><ul id="clue'
    			+ newindex
    			+'" class="clue"></ul><input id="removeone'
    			+ newindex
    			+'" type="button" class="removeone" value="删除" /></div>';
    		$(auto).append(domStr);
    		maxIndex++;
    		var selectDiv = $("#selectDiv" + newindex).get(0);
    		var txt = $("#txt" + newindex).get(0);
    		var clue = $("#clue" + newindex).get(0);
    		var removeone = $("#removeone" + newindex).get(0);
    		selectDiv.innerHTML = selectOptStr;
    		var select = $("#select" + newindex).get(0);
    		select.onchange = function(){
    			var num = this.selectedIndex;
    			var seltxt = this.options[num].text;
    			txt.value = seltxt;
    		};
    		autoClue.clue(content, txt, clue, "请输入***");
    		removeone.onclick = function(){
    			$(this).parent().remove();
    		};
    	};
    	
    });
    

      JavaScript代码 autoClue.js

    (function(window){
        var autoClue = {
    		/*
    		 * content 为提示内容数组,数组每项均为字符串
    		 * txt 文本框dom对象
    		 * clue ul无序列表dom对象
    		 * txtInitValue 文本框初始化文本
    		 */
            clue : function(content, txt, clue, txtInitValue){
            	var isInit = false;
                clue.style.display = "none";
                var cluestr = clue.id;
                var createList = function(data){
                    var i, str='', len = data.length;
                    for(i = 0; i < len && i < 10; i++){
                        str += '<li id="list'
                        	+ cluestr
                            + i
                            +'">'
                            + decodeURIComponent(data.pop());
                            +'</li>';
                    }
                    return str;
                };
                if(!isInit){
                	txt.value = txtInitValue;
                }
                txt.onfocus = function(){
                	if(!isInit){
                		txt.value = "";
                	}
                };
                txt.onkeyup = function(event){
                    event = event || window.event;
                    var input = encodeURIComponent(txt.value);
                    var result = new Array();
                    var i, len = input.length, resultLen;
                    if(input == null || input == ''){
                    	isInit = true;
                        return false;
                    }
                    if(event.keyCode == 40 && clue.innerHTML){
                        var listLen = clue.children.length, i, curIndex = -1;
                        for(i = 0; i < listLen; i++){
                            var tmp = clue.childNodes[i].style.backgroundColor;
                            if(tmp != "" && tmp != null && tmp != "none"){
                                curIndex = i;
                                var curList = document.getElementById("list" + cluestr + i);
                                if(navigator.appName =="Microsoft Internet Explorer"){
                                    curList.style.backgroundColor = "";
                                }else{
                                    curList.style.backgroundColor = null;
                                }
                                if(i == listLen-1){
                                    curIndex = -1;
                                }
                                break;
                            };
                        }
                        var nextList = document.getElementById("list" + cluestr + (curIndex + 1));
                        nextList.style.backgroundColor = "#D1E5FC";
                        txt.value = nextList.innerHTML;
                        txt.focus();
                        return false;
                    }
                    if(event.keyCode == 38 && clue.innerHTML){
                        var listLen = clue.children.length, i, curIndex = 0;
                        for(i = 0; i < listLen; i++){
                            var tmp = clue.childNodes[i].style.backgroundColor;
                            if(tmp != "" && tmp != null && tmp != "none"){
                                curIndex = i;
                                var curList = document.getElementById("list" + cluestr + i);
                                if(navigator.appName =="Microsoft Internet Explorer"){
                                    curList.style.backgroundColor = "";
                                }else{
                                    curList.style.backgroundColor = null;
                                }
                                if(i == listLen-1){
                                    curIndex = -1;
                                }
                                break;
                            };
                        }
                        var preList = document.getElementById("list" + cluestr + ((curIndex - 1 + listLen) % listLen));
                        preList.style.backgroundColor = "#D1E5FC";
                        txt.value = preList.innerHTML;
                        txt.focus();
                        return false;
                    	
                    }
                    if(event.keyCode == 13 && clue.innerHTML){
                    	var listLen = clue.children.length, i, curIndex = -1;
                        for(i = 0; i < listLen; i++){
                            var tmp = clue.childNodes[i].style.backgroundColor;
                            if(tmp != "" && tmp != null && tmp != "none"){
                                curIndex = i;
                                var curList = document.getElementById("list" + cluestr + i);
                                txt.value = curList.innerHTML;
                                clue.innerHTML = "";
                                clue.style.display = "none";
                                break;
                            };
                        }
                        return false;
                    }
                    for(i = 0; i < content.length; i++){
                        if(input == content[i].substring(0, len)){
                            result.push(content[i]);
                        }
                    }
                    resultLen = result.length;
                    resultStr = createList(result);
                    clue.innerHTML = resultStr;
                    clue.style.display = "block";
                    for(i = 0; i < resultLen; i++){
                        var list = document.getElementById("list" + cluestr + i);
                        list.onclick = function(){
                            txt.value = this.innerHTML;
                            clue.style.display = "none";
                        };
                    }
                };
                txt.parentNode.onblur = function(){
                	alert("blur");
                    clue.style.display = "none";
                };
            }
        };
        window.autoClue = autoClue;
    })(window);
    

      

  • 相关阅读:
    java 输出质数
    各大OJ
    使用css让图片居中
    poj 1250 Tanning Salon
    Struts2 中整合DWR3实现文件上传
    C语言I博客作业02
    The first essay.
    tar命令
    wBox Demo
    缓存记录
  • 原文地址:https://www.cnblogs.com/realwall/p/2186725.html
Copyright © 2011-2022 走看看