>  기사  >  웹 프론트엔드  >  简单的文本框输入自动提示_html/css_WEB-ITnose

简单的文本框输入自动提示_html/css_WEB-ITnose

WBOY
WBOY원래의
2016-06-24 11:48:13918검색

简单的文本框输入自动提示--输入的时候可以直接异步加载数据库中匹配的项,然后显示出来。

         这里没有使用到数据库,直接在PHP用数组模拟数据存储。

             demo演示

 

原理主要是:

监听输入框的状态,当有改变的时候即刻通过ajax发送数据并取得返回值。

 

主要使用了jQuery封装很方便,但貌似我这个兼容性不咋地...主要提供个思路吧~

js部分:

<script type="text/javascript" src="./js/jquery.min.js"></script><script type="text/javascript">$(function(){     $(":button").click(function() {        /* Act on the event */        if($(":input").val() != ""){             alert("your name is " + $(":input").val());        }    });    $(":input").bind("keyup",function(){         $(".info").empty();        if($(this).val() == "")  return;    //    alert($("#name").val());        $.ajax({             type: 'get',            url:    'Automatic_prompt_info.php',            data: {name: $("#name").val()},            success: function(data){             //    alert(data);                        var array = new Array();                array = data.split(",");                $(".info").append($("<ul></ul>"));                for(var i=0;i<array.length-1;i++){                    $(".info ul").append($("<li>"+array[i]+"</li>"));                }                                $(".info ul").on("click",function(event){    //事件委托                    $("#name").val($(event.target).text());                    $(".info").empty();                })            }        });    });});</script>

顺便把html部分带上,免得不知哪个是哪个

    <style type="text/css">    html,body,div,form,input,legend,label,button,ul,li{margin: 0;padding: 0;}    form,fieldset{border: 0;}    .wrap{position:relative;margin: 100px auto; width: 700px; height: 400px;overflow: hidden;}    input{width: 300px; height: 36px; border: 3px solid green;border-radius: 3px;font-weight: bold;}    button{width: 120px; height: 42px; border: 0;padding: 8px;margin-left:-10px;background-color: green;font-weight: bold;font-size:16px;color: white;cursor: pointer;border-radius: 30px;}    .info{position: relative;top: -10px;left: 14px;width: 305px;}    ul{list-style: none;}    li{padding: 3px 10px; border-bottom: 1px dotted #333;background-color: #ddd; }    li:hover{cursor: pointer;background-color: green;}    </style></head><body>    <div class="wrap">    <h3>文本框文本自动提示(如输入fish  jack )</h3>        <form name="form" method="get" action="">            <fieldset>            <label for="search"></label>            <input type="text" name="name" id="name" placeholder="Input your name">            <button type="button" id="button">search</button>            </fieldset>        </form>        <div class="info">                </div>            </div>

 

 

php数据部分:

使用简单的正则匹配即可。

<?php$names = array('adan','acos','acoss','apple','fish','fisher','fishers','jack','july','boy','boyee','girl','json');  // names$name = $_GET['name'];  // name from input label$str = "";$counts = count($names);for($i = 0;$i<$counts;$i++){     if(preg_match("/^$name/", $names[$i])){    //find         $str .= $names[$i];        if($i != $counts - 1)            $str .= ",";    }}//$data = array("A"=>$str)//echo json_encode($data);     // send back infoecho $str;?>

 

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.