zoukankan      html  css  js  c++  java
  • 邮件的自动补全功能以及人员姓名的自动补全功能(来自华三)

    邮件的自动补全功能用的是jquery-ui.js

     抄送人员的自动补全功能,即邮件的自动补全功能,来自t_User表中的Email这个字段,比如输入zml,点击回车,就会自动出现zml@govaze.com

     或者根本就不需要点击回车

     前台代码

    <ext:TextBox ID="Text3" runat="server" Label="实际参与人员" EmptyText="输入至少三个字符(自动补全)" MinLength="3" Required="true" ShowRedStar="true"/>

    <ext:TextBox ID="Text102" Label="抄送人员" EmptyText="输入至少三个字符(自动补全)" runat="server" />

    js中的对应的代码

    <script src="../res/js/jquery.min.js" type="text/javascript"/>
    <script src="../res/autocomplete/jquery-ui.js" type="text/javascript"/>
    <script type="text/javascript">

    var Text102ID = '<%= Text102.ClientID %>';
    var Text3ID = '<%= Text3.ClientID %>';

    // 将字符串 val 以逗号空格作为分隔符,分隔成数组
    function split(val) {
    return val.split(/,s*/);
    }

    // 取得以逗号空格为分隔符的最后一个单词
    // 比如,输入为 "C++, C#, JavaScript" 则输入出 "JavaScript"
    function extractLast(term) {
    return split(term).pop();
    }

    邮件的自动补全功能 

    function bindAutocompleteEmail(ClientID, cache) {

    $('#' + ClientID + ' input').bind("keydown", function (event) {
    // 通过 Tab 选择一项时,不会使当前文本框失去焦点
    if (event.keyCode === $.ui.keyCode.TAB &&
    $(this).data("autocomplete").menu.active) {
    event.preventDefault();
    }

    }).autocomplete({
    minLength: 3,
    autoFocus: true,
    source: function (request, response) {
    // 将最后一个单词作为输入值,从列表中过滤出备选项
    var term = extractLast(request.term);
    if (term.length < 3) {
    return;
    }
    if (term in cache) {
    response(cache[term]);
    return;
    }
    else {
    request.term = term;
    }
    request.userName = F('<%= userName.ClientID %>').getValue();

    $.getJSON("getUserEmailHandler.ashx", request, function (data, status, xhr) {
    cache[term] = data;
    response(data);
    });

    },
    focus: function () {
    // 阻止某一项获得焦点时,更新文本框的值
    return false;
    },
    change: function (event, ui) {
    var terms = split(this.value);
    // 移除用户正在输入项
    terms.pop();
    terms.push("");
    this.value = terms.join(", ");
    },
    select: function (event, ui) {
    var terms = split(this.value);
    // 移除用户正在输入项
    terms.pop();
    // 添加用户选择的项
    terms.push(ui.item.value);
    // 添加占位符,确保字符串的最后以逗号空格结束
    terms.push("");
    this.value = terms.join(", ");
    return false;
    }
    });
    }

    人员姓名的自动补全功能

    function bindAutocomplete(id, cache) {

    $('#' + id + ' input').autocomplete({
    minLength: 3,
    autoFocus: true,
    mustMatch: true,
    source: function (request, response) {
    var term = request.term;
    if (term in cache) {
    response(cache[term]);
    F(id).setValue(cache[term][0]);
    return;
    }
    request.userName = F('<%= userName.ClientID %>').getValue();

    $.getJSON("getUserAll2Handler.ashx", request, function (data, status, xhr) {
    cache[term] = data;
    response(data);
    if (data) {
    F(id).setValue(data[0]);
    }
    else {
    F(id).setValue("");
    }
    });
    }

    });
    }

    F.ready(function () {

    var cache1 = {};
    var cache2 = {};
    bindAutocompleteEmail(Text102ID, cache1);//调用邮件的自动补全功能
    bindAutocomplete(Text3ID, cache2);//人员姓名的自动补全功能


    });

    getUserEmailHandler.ashx在自动补全邮件的代码中还需要此文件

     a_User_dis_EmailList,调用了此存储过程,执行了最后一个分支,只有最后一个分支里面出现的数据,才会在邮件的输入框中出现

    实际参与人员用到的.ashx文件

     

     

  • 相关阅读:
    Linux 安装 jdk 后 jps 出现问题/usr/jdk1.8.0_151/bin/jps: /lib/ld-linux.so.2: bad ELF interpreter: No such
    Jackson 注解
    Git 右键添加Git Bash
    No validator could be found for constraint
    rror querying database. Cause: java.sql.SQLException: null, message from server: "Host '192.168.30.1' is not allowed to connect to this MySQL server"
    Linux 安装 Mysql-5.7.23-linux-glibc2
    Promise
    PAT(B) 1094 谷歌的招聘(Java)
    PAT(B) 1074 宇宙无敌加法器(Java)
    PAT(B) 1078 字符串压缩与解压(Java)
  • 原文地址:https://www.cnblogs.com/sanshengshitouhua/p/14377100.html
Copyright © 2011-2022 走看看