My97日期插件实现日期多选

本文介绍如何使用JS修改My97日期插件属性,实现日期多选功能。通过对WdatePicker组件的onpicked和oncleared事件进行自定义处理,可以实现在一个输入框内展示多个已选日期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

-##一、story

项目中一个查询页面的日期输入框需要实现多选,日期插件用的是My97,由于原始的My97不支持日期多选,只能选用其他日期插件或对My97进行改造,下面介绍下用js修改My97的属性来实现多选

二、js修改My97属性

基本思路都在注释中,主要是修改WdatePicker的两个属性onpicked和oncleared;

html部分

    <td class="form_text" width="470px">日期:
    <!-- 展示所选日期的input框 -->
    <input id="paramDate" name="paramDate" size="17" style="height:20px;font-size:14px;" readonly />
    <!-- 隐藏的和日期选择插件绑定的input框 -->
    <input id="paramDate_hide" type="hidden" />
    <!-- 日期图标,点击图标展示日期选择插件 -->
    <img id="f_trigger_a" class="trigger" src="<c:url value='/images/calen_pic.gif'/>" 
    width="20" align="middle" style="margin-top:-9px;" onclick="showWdatePicker()" />
    <!-- 记录所选日期的个数 -->
    <span id="selectNumber" class="form_text"></span>
    </td>

js部分

    //引入My97插件的js
    <script type="text/javascript" src="<c:url value='/script/My97DatePicker/WdatePicker.js'/>"></script>

    //修改WdatePicker的属性
    var datesArray = new Array();//存放所选日期的数组
    var datesString = "";//日期字符串
    function showWdatePicker(){
    WdatePicker({
        el:'paramDate_hime',
        dateFmt:'yyyy-MM',
        onpicked:function(){//选择日期之后需要执行的自定义函数
            //过滤重复选择的日期 this.value即为当前所选日期,也可 
            //以通过jQuery获取($("#paramDate_hide").val())
            for(var index in datesArray){
                if(datesArray[index] == this.value){
                    return;
                }
            }
            //将得到的日期放入数组
            datesArray.push(this.value);
            //多选的日期之间用逗号分隔,每次选择的日期放在最前面
            if(datesArray.length == 1){ 
                datesString = this.value;
            } else { 
                datesString = this.value +","+ datesString
            }
            //展示日期的input框长度自适应 默认20 最大48
            if(datesString.length > 20 && datesString.length < 48){ 
                document.getElementById("paramDate").size = datesString.length - 2;
            }
            //展示多选的日期
            $("#paramDate").val(datesString);
            //显示所选日期的个数
            $("#selectNumber").html("已选:" + datesArray.length + "个");
        },
        oncleared:function(){//点击清空按钮后需要执行的自定义函数
            //清空展示日期的input框
            $("#paramDate").val("");
            //清空存放日期的数组
            datesArray = [];
            //清空日期字符串
            datesString = "";
            //恢复展示日期的input框的默认长度
            document.getElementById("paramDate").size = 17;
            //清空显示个数的<span>快
            $("#selectNumber").html("");
        }
    });
    }

效果图

这里写图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值