`

My97 WdatePicker 事件控件使用

 
阅读更多

   最近在做项目过成功遇到这样的需求,在使用事件控件选择日期之后,紧接着进行一次查询操作。开始一直纠结在对文本内容改变进行监听,但是有出现了浏览器兼容的问题,好一阵纠结。

  偶然机会想到时间控件是否有日期时间选择完成事件,查找My97 WdatePicker 文档果然,有这样的监听事件;

贴下来供大家参考使用:

    控件地址是:http://www.my97.net/dp/demo/resource/2.5.asp

二. 功能及示例

5. 自定义事件

  1. 自定义事件

    如果你需要做一些附加的操作,你也不必担心,日期控件自带的自定义事件可以满足你的需求.此外,你还可以在自定义事件中调用提供的API库来做更多的运算和扩展,绝对可以通过很少的代码满足你及其个性化的需求.

    注意下面几个重要的指针,将对你的编程带来很多便利
    this: 指向文本框
    dp: 指向$dp
    dp.cal: 指向日期控件对象

    注意:函数原型必须使用类似 function(dp){} 的模式,这样子,在函数内部才可以使用dp

  2. onpicking 和 onpicked 事件

    示例5-2-1 onpicking事件演示

     
    <input type="text" id="5421" onFocus="WdatePicker({onpicking:function(dp){if(!confirm('日期框原来的值为: '+dp.cal.getDateStr()+', 要用新选择的值:' + dp.cal.getNewDateStr() + '覆盖吗?')) return true;}})" class="Wdate"/>

    注意:你注意到dp.cal.getDateStr和dp.cal.getNewDateStr的用法了嘛? 详见内置函数和属性

    示例5-2-2 使用onpicked实现日期选择联动

    选择第一个日期的时候,第二个日期选择框自动弹出
    日期从:  至  
    注意:下面第一个控件代码的写法
    <input id="d5221" class="Wdate" type="text" onFocus="var d5222=$dp.$('d5222');WdatePicker({onpicked:function(){d5222.focus();},maxDate:'#F{$dp.$D(\'d5222\')}'})"/>

    <input id="d5222" class="Wdate" type="text" onFocus="WdatePicker({minDate:'#F{$dp.$D(\'d5221\')}'})"/>

    注意:$dp.$是一个内置函数,相当于document.getElementById

    示例5-2-3 将选择的值拆分到文本框

     年  月  日  时  分  秒   
    <input type="text" id="d523_y" size="5"/> 年
    <input type="text" id="d523_M" size="3"/> 月
    <input type="text" id="d523_d" size="3"/> 日
    <input type="text" id="d523_HH" size="3"/> 时
    <input type="text" id="d523_mm" size="3"/> 分
    <input type="text" id="d523_ss" size="3"/> 秒 
    <img onclick="WdatePicker({el:'d523',dateFmt:'yyyy-MM-dd HH:mm:ss',onpicked:pickedFunc})" src="../../My97DatePicker/skin/datePicker.gif" width="16" height="22" align="absmiddle" style="cursor:pointer"/>
    <script>
    function pickedFunc(){
    $dp.$('d523_y').value=$dp.cal.getP('y');
    $dp.$('d523_M').value=$dp.cal.getP('M');
    $dp.$('d523_d').value=$dp.cal.getP('d');
    $dp.$('d523_HH').value=$dp.cal.getP('H');
    $dp.$('d523_mm').value=$dp.cal.getP('m');
    $dp.$('d523_ss').value=$dp.cal.getP('s');
    }
    </script>

    注意:el:'d523'中,如果你不需要d523这个框,你可以把他改成hidden,但是el属性必须指定
    $dp.$和$dp.cal.getP都是内置函数

  3. onclearing 和 oncleared 事件

    示例5-3-1 使用onclearing事件取消清空操作

     
    <input type="text" class="Wdate" id="d531" onFocus="WdatePicker({onclearing:function(){if(!confirm('日期框的值为:'+this.value+', 确实要清空吗?'))return true;}})"/>

    注意:当onclearing函数返回true时,系统的清空事件将被取消,
    函数体里面没有引用$dp,所以函数原型里面可以省略参数dp

    示例5-3-2 使用cal对象取得当前日期所选择的月份(使用了 dp.cal)

     
    <input type="text" class="Wdate" id="d532" onFocus="WdatePicker({oncleared:function(dp){alert('当前日期所选择的月份为:'+dp.cal.date.M);}})"/>

    示例5-3-3 综合使用两个事件

     
    <script>
    function d533_focus(element){
    var clearingFunc = function(){ if(!confirm('日期框的值为:'+this.value+', 确实要清空吗?')) return true; }
    var clearedFunc = function(){ alert('日期框已被清空'); }
    WdatePicker({el:element,onclearing:clearingFunc,oncleared:clearedFunc})
    }
    </script>
    <input type="text" class="Wdate" id="d533" onFocus="d533_focus(this)"/>

  4. 年月日时分秒的 changing和changed

    年月日时分秒都有对应的changing和changed事件,分别是:
    ychanging ychanged 
    Mchanging Mchanged
    dchanging dchanged
    Hchanging Hchanged
    mchanging mchanged
    schanging schanged 

    示例5-4-1 年月日改变时弹出信息

     
    <input type="text" class="Wdate" onFocus="WdatePicker({dchanging:cDayFunc, Mchanging:cMonthFunc,ychanging:cYearFunc, dchanged:cDayFunc, Mchanged:cMonthFuncychanged:cYearFunc})"/>
    <script>
    function cDayFunc(){
    cFunc('d');
    }
    function cMonthFunc(){
    cFunc('M');
    }
    function cYearFunc(){
    cFunc('y');
    }
    function cFunc(who){
    var str,p,c = $dp.cal;
    if(who=='y'){
    str='年份';
    p='y';
    }
    else if(who=='M'){
    str='月份';
    p='M';
    }
    else if(who=='d'){
    str='日期';
    p='d';
    }
    alert(str+'发生改变了!\n$dp.cal.date.'+p+'='+c.date[p]+'\n$dp.cal.newdate.'+p+'='+c.newdate[p]);
    }
    </script>


    这个例子用到了 $dp.cal.date 和 $dp.cal.newdate 属性,你能从这里发现他们的不同之处吗?
    下面是有关这两个属性的描述详见内置函数和属性

分享到:
评论

相关推荐

    WdatePicker日历控件使用方法

    详细介绍了WdatePicker日历控件使用方法

    My97 DatePicke API

    My97 DatePicke API 更专业更详细的WdatePicker日历控件使用方法

    my97日历控件跟ie8不兼容 解决方案

    my97日历控件跟ie8不兼容 解决方案my97日历控件跟ie8不兼容 解决方案my97日历控件跟ie8不兼容 解决方案my97日历控件跟ie8不兼容 解决方案my97日历控件跟ie8不兼容 解决方案

    My97 DatePicker My97日期控件 4.8正式版

    跨无限级框架显示和自动选择显示位置 无论你把日期控件放在哪里,你都不需要担心会被外层的iframe所遮挡进而影响客户体验,My97日期控件是可以跨无限级框架显示的,并且当控件处在页面边界是,它会自动选择显示的位置....

    jsp页面使用My97DatePicker日历控件就经常出现无法打开站点

    NULL 博文链接:https://laoqian9527.iteye.com/blog/703691

    My97DatePicker时间控件

    WdatePicker.js 配置文件,在调用的地方仅需使用该文件,可多个共存,以xx_WdatePicker.js方式命名 config.js 语言和皮肤配置文件,无需引入(4.8以后合并入WdatePicker.js) calendar.js 日期库主文件,无需引入 My97...

    My97DatePicker日期控件项目应用

    My97DatePicker日期控件使用引入js脚本目录,注意必须用() %&gt;来获取项目根目录+脚本目录的方式,否则日期控件会无效!!! () %&gt;/js/My97DatePicker/WdatePicker.js"&gt; 带参使用格式: //格式:2012-09-12 ...

    My97DatePicker日历控件

    WdatePicker日历控件使用方法 简单好用

    My97DatePicker包(WdatePicker.js文件加了详细备注)

    WdatePicker.js 配置文件,在调用的地方仅需使用该文件,可多个共存,以xx_WdatePicker.js方式命名 config.js 语言和皮肤配置文件,无需引入(4.8以后合并入WdatePicker.js) calendar.js 日期库主文件,无需引入 My97...

    My97 DatePicker日期控件 4.0 正式版(5月30日)

    多种皮肤的日期控件,更棒的是,他们之间的切换是无刷新的. &lt;br&gt;跨无限级框架显示和自动选择显示位置 无论你把日期控件放在哪里,你都不需要担心会被外层的iframe所遮挡进而影响客户体验,My97日期控件是可以跨...

    My97DatePicker js 日期控件时间,功能强大,有案例

    js中的时间控件WdatePicker日期控件,功能强大 WdatePicker日历控件使用方法

    WdatePicker 时间控件插件(压缩文件)

    大部分日期控件都具备功能如:带时间显示,支持周显示,自定义格式,自动纠错,智能纠错,起始日期,操作按钮自定义,快速选择日期,支持多种调用模式等,My97DatePicker在这些方面做得更全面,更人性化,并且速度一流.

    日历控件my97datepicker

    WdatePicker.js 配置文件,在调用的地方仅需使用该文件 config.js 语言和皮肤配置文件 calendar.js 日期库主文件) My97DatePicker.htm 临时页面文件,不可删除 目录lang 存放语言文件 目录skin 存放皮肤的相关文件...

    my97日期控件js

    1.支持多种调用模式 2.下拉,输入,导航选择日期 2. 直接使用键盘输入数字

    js日历控件My97DatePicker4.8

    更人性化,更全面的功能 大部分日期控件都具备功能如:带时间显示,支持周显示,自定义格式,自动纠错,智能纠错,起始日期,操作按钮自定义,快速选择日期,支持多种调用模式等,My97DatePicker在这些方面做得更全面,更人性化,...

    My97DatePicker日期控件插件

    &lt;script src="My97DatePicker/WdatePicker.js" type="text/javascript" 2、textbox的onclick事件调用一下JS的方法即可 &lt;asp:TextBox ID="txtDate" onClick="WdatePicker()" runat="server" Width="150px" &gt;...

    My97DatePicker日期控件asp.net

    &lt;script language="javascript" type="text/javascript" src="../../../JavaScript/My97DatePicker/WdatePicker.js" defer="defer"&gt; 3,控件里引用脚本 onFocus="WdatePicker({dateFmt:'yyyy-MM-dd',...

    wdatepicker.js下载

    比较常用的日历控件是My97DatePicker,感觉比较常用也比较常用,分享给大家

    My97DatePicker前端日期插件

    My97DatePicker一款简易前端日期控件,自带格式验证功能,使用很简单,input标签引用对应的class即可

Global site tag (gtag.js) - Google Analytics