博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 标签的添加和删除(选择标签加样式)
阅读量:5327 次
发布时间:2019-06-14

本文共 2167 字,大约阅读时间需要 7 分钟。

  公司一个新项目中,有个功能很吸引人.. 在很多网站上也很常见,虽然标签是用repeater动态绑定的,可以用到OnItemCommand来做,但是后台这么做很是复杂而且在选取标签的时候会刷新页面,这个不可取.在网上貌似也没相关的资料,这里我用JS做了这个功能,现在拿出来给大家分享下. 也希望大家能赞下我,多关注下我~

 

再次点击 Darren标签的时候,图如下

这里绑定的标签,我用到一个随机颜色方法,JS我写的很全面,点击下面的标签上面文本框添加这个标签的值,并且标签上加样式,当再次添加这个标签的时候,这个标签样式取消,文本框中值去除,因为项目策划中,需要标签只能限定在三个上.这里不管手写还是自选标签都被我控制在三个以内.(数据库中就一个标签名称和标签ID) 好了,废话不多说,我上代码了:

前台绑定标签:

后台标签随机颜色的方法:

调用的JS:

//点击标签使用的方法

function MarkSelectByID(a, b) {
    var m = document.getElementById("tx_markname");
    var num = 0;
    if (num<=3&&$("#lbl_MarkSelect" + b + "").css("background-color") == "transparent") //没有选择
    {
        if (m.value != "") {
            if (m.value.substr(m.value.length - 1) != " ") {
                m.value += " ";
            }
            var s = $("#tx_markname").val().split(" "); //遍历文本框
            if (s.length < 4) {
                m.value += a + " ";
                $("#lbl_MarkSelect" + b + "").css("background-color", "#f2eada");
            }
        } else {
            m.value += a + " ";
            $("#lbl_MarkSelect" + b + "").css("background-color", "#f2eada");  //选中之后设置为象牙色
        }
        num += 1;
    }
    //已经被选择的标签,再次点击去除样式,文本框中相对应的值也去除
    else {
        //如果文本框最后没有给空格,默认给一个空格
        if (m.value.substr(m.value.length - 1) != " ") {
            m.value += " ";
        }
        $("#lbl_MarkSelect" + b + "").css("background-color", "transparent");
        m.value = m.value.replace(a + " ", "");
        num -= 1;
    }
}
var m; //保存三个标签时的值来控制超过标签
//文本框值改变的方法
function MatkChange() {
    var g = $("#tx_markname").val();
    //清楚首位空格
    if (g==" ") {
        $("#tx_markname").val("");
    }
    //不允许输入2个连续的空格
    if (g.substr(g.length - 1,1) == " "&&g.substr(g.length - 2,1) ==" ") {
        $("#tx_markname").val(g.substr(0,g.length - 1));
    }
    //清空所有样式
    $(".Cs_Mark").each(function () {
        $(this).css("background-color", "transparent");
    });
    var s = $("#tx_markname").val().split(" "); //遍历文本框
    var num = s.length - 1;
    if (num == 3) {
        var LastIndex = $("#tx_markname").val().lastIndexOf(" ");
        m = $("#tx_markname").val().substr(0, LastIndex + 1);
        $("#tx_markname").val(m);
    }
    if (num>3) {
        $("#tx_markname").val(m);
    }
    var j = $("#tx_markname").val().split(" ");
    $.each(j, function () {
        var a = this;  //文本框每个元素
        $(".Cs_Mark").each(function () {
            if (a == this.text) {
                $(this).css("background-color", "#f2eada");
            }
        });
    });
}

如果博友觉得哪里有不懂的可以加我QQ:357253950 来交流~ 

 

转载于:https://www.cnblogs.com/xiong-QQ357253950/archive/2013/06/03/3115138.html

你可能感兴趣的文章
Ubuntu 中搭建 LAMP 及 php 开发工具
查看>>
Convert Sorted Array to Binary Search Tree
查看>>
基于Ubuntu的ESP32平台搭建
查看>>
Redis 实现队列优先级
查看>>
CSS3属性选择器总结
查看>>
OO期末总结
查看>>
xStream 的简单使用 xml to bean
查看>>
修改eclipse或者myeclipse的背景颜色(全部的背景颜色)
查看>>
python基本使用时常见错误
查看>>
XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Saratov
查看>>
BZOJ3495 : PA2010 Riddle
查看>>
BZOJ4293 : [PA2015]Siano
查看>>
IOS UI TabBar标签栏的使用
查看>>
深入理解Thread.sleep的含义
查看>>
Android开发遇到的问题
查看>>
框架的配置文件的映射机制
查看>>
ambari 2.7 下安装httpfs
查看>>
linux:nohup 不生成 nohup.out的方法
查看>>
[na]pc加入域认证细节
查看>>
Harris角点检测原理分析
查看>>