zoukankan      html  css  js  c++  java
  • jquery 添加关键字小插件

    模块化封装,兼容seajs

    /**
     * User: c3t
     * Date: 14-3-25
     * Time: 下午4:16
     */
    
    
    define(function (require, exports, module) {
        return function (jQuery) {
            (function ($) {
                var setting = null;
                $.fn.keywordInput = function (opts) {
                    setting = $.extend({
                        number: 5, //关键字数量限定
                        msg: "请输入关键字,通过逗号或者回车确认"
                    }, opts || {});
                    init(this);
                    this.keyup(inputKeywords);
                    //通过事件委派。对新加入的标签添加事件
                    $("#keywords-wrap").on("click", ".keyword-shut", function (event) {
                        $(this).parent(".keyword-in").remove();
                        event.preventDefault();
                    });
    
                };
                function init(input) {
                    $(input).val(setting.msg);
                    $(input).addClass("keyword-input");
                    $(input).wrap("<div id='keyword-container'></div>").before("<div id='keywords-wrap'></div>");
    
                    $(input).focus(function () {
                        $(this).val("");
                    });
    
                    $(input).blur(function () {
                        $(this).val(setting.msg);
                    });
                }
    
                function inputKeywords(event) {
                    var code = event.keyCode;
                    if (code == 188 || code == 13) {
                           var c = $(this).val();
                        if(c!="") {
                            if($(".keyword-in").length >=setting.number){
                                alert("最多只能允许添加"+setting.number+"个关键字");
                                event.preventDefault();
                                return  false;
                            }
                            //防止关键字重复
                            var aks = $("input[name='aks']");
                            for(var i=0;i<aks.length;i++) {
                                if($(aks[i]).val()==c) {
                                    alert("不能添加重复的关键字");
                                    event.preventDefault();
                                    return false;
                                }
                            }
    
                            var ki = createKeyWord(c);
                            $('#keywords-wrap').append(ki);
                            $(this).val("");
                        }
                    }
    
                }
    
                function createKeyWord(val) {
                    return "<div class='keyword-in'>"+
                                "<span>"+val+"</span>"+
                                "<a href='#' class='keyword-shut'>×</a>"+
                                "<input type='hidden' name='aks' value='"+val+"'/>"+
                           "</div>";
                }
            })(jQuery);
        }
    });

    css 样式

    #keyword-container {
        border: 1px solid #bbb;
         300px;
    }
    
    input.keyword-input {
        border: none;
         300px;
        color: #aaa;
        height: 28px;
    }
    
    .keyword-in {
        float: left;
        font-size: 12px;
        margin: 3px;
        background: #3fa7cb;
        color: #fff;
    }
    
    .keyword-shut:link, .keyword-shut:visited {
        color: #fff;
        text-decoration: none;
    }
    
    a.keyword-shut:hover {
        color: #ff0000;
    }
    

     页面

     <input type="text" id="keyword-input" value=""/>
    

     调用

    $("#keyword-input").keywordInput();
    
  • 相关阅读:
    java 获取最近三个月的月初和月末日期
    java 字符串与十六进制互转
    @Validated 参数校验及配置
    mybatis 存取Oracle数据库中Blob类型数据
    Java下载服务器文件到前端
    Java实现Oracle拷贝数据插入到MySQL
    保利、绿地用移动质检3.0管进度、质量,让快周转又快又好!
    未造先知,匠心协同-BIM全过程总咨询实践案例赏析-2021版
    大数据资产管理总体框架概述
    “数据资产全生命周期管理”你要知道的九大问题
  • 原文地址:https://www.cnblogs.com/or2-/p/3632146.html
Copyright © 2011-2022 走看看