知问前端——自动补全UI

自动补全(autocomplete),是一个可以减少用户输入完整信息的UI工具。一般在输入邮箱、搜索关键字等,然后提取出相应完整字符串供用户选择。

调用autocomplete()方法

var host = [‘aa‘, ‘aaaa‘, ‘aaaaaa‘, ‘bb‘];
$("#email").autocomplete({
    source:host
});

修改autocomplete()样式

由于autocomplete()方法是弹窗,然后鼠标悬停的样式,我们通过Firebug想获取到悬停时背景的样式,可以直接通过jquery.ui.css里面找相应的CSS。

/* 邮箱自动补全的悬停背景色 */
.ui-menu .ui-state-focus {
    background:url(img/ui_header_bg.png);
}
/* 邮箱自动补全,悬停时的字体颜色 */
.ui-menu {
    color: #666;
}

autocomplete()方法的属性

自动补全方法有两种形式:

1.autocomplete(options),options是以对象键值对的形式传参,每个键值对表示一个选项

2.autocomplete(‘action‘, param),action是操作对话框方法的字符串,param则是options的某个选项。

autocomlete外观选项

属性 默认值/类型 说明
disabled false/布尔值 设置为true,将禁止显示自动补全
source 无/数组 指定数据源,可以是本地的,也可以是远程的
minLength 1/数值 默认为1,触发补全列表最少输入字符数
delay 300/数值 默认为300毫秒,延迟显示设置
autoFocus false/布尔值 设置为true时,第一个项目会自动被选定

index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>知问前端</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="jquery-ui.js"></script>
    <script type="text/javascript" src="index.js"></script>
    <link rel="shortcut icon" type="image/x-icon" href="img/favicon.ico" />
    <link rel="stylesheet" type="text/css" href="jquery-ui.css" />
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <div id="header">
        <div class="header_main">
            <h1>知问</h1>
            <div class="header_search">
                <input type="text" name="search" class="search" />
            </div>
            <div class="header_button">
                <button id="search_button">查询</button>
            </div>
            <div class="header_member">
                <a href="###" id="reg_a">注册</a> | <a href="###" id="login_a">登录</a>
            </div>
        </div>
    </div>

    <div id="reg" title="会员注册">
        <p>
            <label for="user">账号:</label>
            <input type="text" name="user" class="text" id="user" title="请输入账号,不少于2位!"></input>
            <span class="star">*</span>
        </p>
        <p>
            <label for="pass">密码:</label>
            <input type="password" name="pass" class="text" id="pass" title="请输入密码,不少于6位!"></input>
            <span class="star">*</span>
        </p>
        <p>
            <label for="email">邮箱:</label>
            <input type="text" name="email" class="text" id="email" title="请输入正确的邮箱!"></input>
            <span class="star">*</span>
        </p>
        <p>
            <label>性别:</label>
            <input type="radio" name="sex" id="male" value="male" checked="checked"><label for="male">男</label></input>
            <input type="radio" name="sex" id="female" value="female"><label for="female">女</label></input>
        </p>
        <p>
            <label for="date">生日:</label>
            <input type="text" name="date" readonly="readonly" class="text" id="date"></input>
        </p>
    </div>
</body>
</html>

style.css:

body {
    margin: 40px 0 0 0;
    padding: 0;
    font-size: 12px;
    font-family: 宋体;
    background: #fff;
}
/* 更改jQuery UI主题的对话框header的背景 */
.ui-widget-header {
    background: url(img/ui_header_bg.png);
}
/* 按钮正常状态的背景 */
.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default {
    background:url(img/ui_header_bg.png);
}
/* 按钮点击状态的背景 */
.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active {
    background:url(img/ui_white.png);
}
/* 工具提示的文本颜色 */
.ui-tooltip {
    color: #666;
}
/* 邮箱自动补全的悬停背景色 */
.ui-menu .ui-state-focus {
    background:url(img/ui_header_bg.png);
}
/* 邮箱自动补全,悬停时的字体颜色 */
.ui-menu {
    color: #666;
}
#header {
    width: 100%;
    height: 40px;
    background: url(img/header_bg.png);
    position: absolute;
    top:0;
}
#header .header_main {
    width: 800px;
    height: 40px;
    margin: 0 auto;
}
#header .header_main h1 {
    font-size: 20px;
    margin: 0;
    padding: 0;
    color: #666;
    line-height: 40px;
    float: left;
    padding: 0 10px;
}
#header .header_search {
    padding: 6px 0 0 0;
    float: left;
}
#header .header_search .search {
    width: 300px;
    height: 24px;
    border: 1px solid #ccc;
    background: #fff;
    color: #666;
    font-size: 14px;
    text-indent: 5px;
}
#header .header_button {
    padding: 5px;
    float: left;
}
#header .header_member {
    float: right;
    line-height: 40px;
    color: #555;
    font-size: 14px;
}
#header .header_member a {
    text-decoration: none;
    font-size: 14px;
    color: #555;
}
#reg {
    padding: 15px 0 0 15px;
}
#reg p {
    margin: 10px 0;
    padding: 0;
}
#reg p label {
    font-size: 14px;
    color: #666;
}
#reg .star {
    font-size: 14px;
    color: red;
}
#reg .text {
    border-radius: 4px;
    border: 1px solid #ccc;
    background: #fff;
    width: 200px;
    height: 25px;
    line-height: 25px;
    text-indent: 5px;
    font-size: 13px;
    color: #666;
}

jQuery代码:

var host = [‘aa‘, ‘aaaa‘, ‘aaaaaa‘, ‘bb‘];
$("#email").autocomplete({
    source:host,
    //disabled:true,
    //minLength:2,
    minLength:0, //触发整个补全列表
    delay:0,
    autoFocus:true
});

autocomplete页面位置选项

属性 默认值/类型 说明
position 无/对象 使用对象的键值对赋值,有两个属性:my和at表示坐标。my是以目标点左上角为基准,at以目标点右下角为基准

jQuery代码:

时间: 2024-10-21 15:09:48

知问前端——自动补全UI的相关文章

第一百七十七节,jQuery,知问前端--概述及 jQuery UI

jQuery,知问前端--概述及 jQuery UI 学习要点: 1.项目介绍 2.jQuery UI 3.UI 主题 一.项目介绍 我们重点仿照"知乎"的架构模式来搭建界面和布局,以及大部分前端功能.而"百度 知道"作为辅助功能来确定我们这个项目需要的前端功能. 从以上知名问答站点中,我们可以确认最主要的前端功能:1.弹出对话框:2.前端按钮: 3.折叠菜单:4.选项卡切换:5.滑动块:6.日历:7.自动补全:8 拖放:等一系列前端模块. 二.jQuery UI

jq自动补全ui

$(function(){ $('.button2').button().css('color','#555') //$('#loga').click(function() { $('#loglike ').dialog( { autoOpen:true, modal:true, width:350, height:300, resizable:false, title: '用户注册', buttons: { '提交': function(){alert('正在注册,请稍等.....')} }

知问前端——概述及jQuery UI

知问系统,是一个问答系统.主要功能:即会员提出问题,会员回答问题.目前比较热门的此类网站有:知乎http://www.zhihu.com.百度知道http://zhidao.baidu.com等.这里我们重点参考“知乎”,来学习一下它采用的前端效果. 项目介绍 我们重点仿照“知乎”的架构模式来搭建界面和布局,以及大部分前端功能.而“百度知道”作为辅助功能来确定我们这个项目需要的前端功能. 从以上知名问答站点中,我们可以确认最主要的前端功能:1.弹出对话框:2.前端按钮:3.折叠菜单:4.选项卡切

jq(邮箱:指定(其他的也可以))自动补全ui

$(function () { $('#search_button').button({ icons : { primary : 'ui-icon-search', }, }); $('#reg').dialog({ autoOpen : true, modal : true, resizable : false, width : 320, height : 340, buttons : { '提交' : function () { } } }); $('#reg').buttonset();

知问前端——邮箱自动补全

本节课,我们通过自动补全source属性的function回调函数,来动态的设置我们的数据源,以达到可以实现邮箱补全功能. 数据源function 自动补全UI的source不但可以是数组,也可以是function回调函数,提供了自带的两个参数设置动态的数据源. $('#email').autocomplete({ source : function (request, response) { //获取用户输入的内容 alert(request.term); //可以获取你输入的值 //绑定数据

知问前端——日历UI(一)

日历(datepicker)UI,可以让用户更加直观的.更加方便的输入日期,并且还考虑不同国家的语言限制,包括汉语. 调用datepicker()方法 $('#date').datepicker(); 修改datepicker()样式 日历UI的header背景和对话框UI的背景采用的是同一个class,所以在此之前已经被修改,所以,这里无须再修改了. /* 日历UI的今天单元格样式 */ .ui-datepicker-today .ui-state-highlight { border:1px

知问前端——日历UI(二)

datapicker外观选项 属性 默认值/类型 说明 disabled false/布尔值 禁用日历 numberOfMonths 1/数值 日历中同时显示的月份个数.默认为1,如果设置3就同时显示3个月份.也可以设置数组:[3,2],3行2列共6个 showOtherMonths false/布尔值 如果设置为true,当月中没有使用的单元格会显示填充, 但无法使用.默认为false,会隐藏无法使用的单元格 selectOtherMonths false/布尔值 如果设置为true,表示可以

知问前端——日历UI(三)

datepicker日期选择选项 属性 默认值/类型 说明 minDate 无/对象.字符串或数值 日历中可以选择的最小日期 maxDate 无/对象.字符串或数值 日历中可以选择的最大日期 defaultDate 当天/日期 预设默认选定日期.没有指定,则是当天 yearRange 无/日期 设置下拉菜单年份的区间.比如:1950:2020 hideIfNoPrevNext false/字符串 设置为true,如果上一月和下一月不存在,则隐藏按钮 gotoCurrent false/布尔值 如

jquery ui 学习随笔 自动补全

一.调用autocomplete()方法 $('#email').autocomplete({ source : ['[email protected]', '[email protected]', '[email protected]'], }); 二.修改autocomplete()样式 由于autocomplete()方法是弹窗,然后鼠标悬停的样式.我们通过Firebug 想获取到悬停 时背景的样式,可以直接通过jquery.ui.css 里面找相应的CSS. //无须修改ui 里的CSS