`
cedary
  • 浏览: 19077 次
  • 性别: Icon_minigender_2
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

DatetimeField

    博客分类:
  • ext
阅读更多
以前用Zapatec Calendar。试用了下extjs的时间控件, DateField中没有time信息。看了下Datepicker, 估计想改出来也不是一会的事。还是改改 Zapatec Calendar,接着用吧。用一个TriggerField做为时间控件,修改了下Calendar-setup.js。去掉了暂时不用的东西,修改事件触发的相关部分。

calendar_setup = function(params) {
     params['ifFormat'] = '%m/%d/%Y %H:%M:%S';
     params['singleClick'] = true;
     params['showsTime'] = true;
     params['sortOrder'] = "asc";
     params['timeFormat'] = "24";
     params['align'] = "Br";
     params['range'] = [1900, 2999];
     params['weekNumbers'] = true;
     params['sortOrder'] = "asc";
     params['timeFormat'] = "24";
     params['electric'] = true;
     params['step'] = 2;
     params['cache'] = false;
     params['showOthers'] = false;
     params['fdowClick'] = false;
     params['disableFdowChange'] = false;
     params['numberMonths'] = 1;
     params['controlMonth'] = 1;
     params['vertical'] = false;
     params['monthsInRow'] = params.numberMonths;

    function onSelect(cal) {
        var p = cal.params;
        var inputField = params.inputField.el.dom;
        var update = (cal.dateClicked || p.electric);
        if (update && p.flat) {
            if (typeof p.flatCallback == "function")
            {
               if (!p.multiple) //User can call function submitFlatDates directly in Calendar object to handle the submission of multiple dates.
                    p.flatCallback(cal);
            } else
                    alert("No flatCallback given -- doing nothing.");
            return false;
        }
        if (update && inputField) {
            inputField.value = cal.currentDate.print(p.ifFormat);
            if (typeof inputField.onchange == "function")
                    inputField.onchange();
        }
        if (update && p.singleClick && cal.dateClicked)
            cal.callCloseHandler();
        if (update && typeof p.onUpdate == "function")
            p.onUpdate(cal);
    };

    if (params.flat != null) {
        if (typeof params.flat == "string")
                params.flat = document.getElementById(params.flat);
        if (!params.flat) {
                alert("Calendar.setup:\n  Flat specified but can't find parent.");
                return false;
        }
        var cal = new Zapatec.Calendar(params.firstDay, params.date, params.onSelect || onSelect);
        cal.disableFdowClick = params.disableFdowChange;
        cal.showsOtherMonths = params.showOthers;
        cal.showsTime = params.showsTime;
        cal.time24 = (params.timeFormat == "24");
        cal.timeInterval = params.timeInterval;
        cal.params = params;
        cal.weekNumbers = params.weekNumbers;
        cal.sortOrder = params.sortOrder.toLowerCase();
        cal.setRange(params.range[0], params.range[1]);
        cal.setDateStatusHandler(params.dateStatusFunc);
        cal.getDateText = params.dateText;
        cal.numberMonths = params.numberMonths;
        cal.controlMonth = params.controlMonth;
        cal.vertical = params.vertical;
        cal.yearStep = params.step;
        cal.monthsInRow = params.monthsInRow;
        cal.helpButton = !params.noHelp;
        if (params.ifFormat) {
            cal.setDateFormat(params.ifFormat);
        }

        var inputField = params.inputField.el.dom;
        if (inputField && inputField.type == "text" && typeof inputField.value == "string") {
                cal.parseDate(inputField.value);
        }

        if (params.multiple) {
           cal.setMultipleDates(params.multiple);
        }
        cal.create(params.flat);
        cal.show();
        return cal;
    }

    var triggerEl = params.inputField;
    triggerEl.onTriggerClick = function() {
        var dateEl = params.inputField.el.dom;
        //FIX for Enter key!
        if (triggerEl.blur) {triggerEl.blur();}
        var dateFmt = params.inputField ? params.ifFormat : params.daFormat;
        var mustCreate = false;
        var cal = window.calendar;

        if (!(cal && params.cache)) {
                window.calendar = cal = new Zapatec.Calendar(params.firstDay,
                                                     params.date,
                                                     params.onSelect || onSelect,
                                                     params.onClose || function(cal) {
                                                             if (params.cache)
                                                                     cal.hide();
                                                             else
                                                                     cal.destroy();
                                                     });
                cal.disableFdowClick = params.disableFdowChange;
                cal.showsTime = params.showsTime;
                cal.time24 = (params.timeFormat == "24");
                cal.timeInterval = params.timeInterval;
                cal.weekNumbers = params.weekNumbers;
                cal.numberMonths = params.numberMonths;
                cal.controlMonth = params.controlMonth;
                cal.vertical = params.vertical;
                cal.monthsInRow = params.monthsInRow;
                cal.historyDateFormat = params.ifFormat || params.daFormat;
                cal.helpButton = !params.noHelp;
                mustCreate = true;
        } else {
                if (params.date)
                        cal.setDate(params.date);
                cal.hide();
        }

        if (params.multiple) {
           cal.setMultipleDates(params.multiple);
        }

        cal.showsOtherMonths = params.showOthers;
        cal.yearStep = params.step;
        cal.setRange(params.range[0], params.range[1]);
        cal.params = params;
        cal.setDateStatusHandler(params.dateStatusFunc);
        cal.getDateText = params.dateText;
        cal.setDateFormat(dateFmt);
        if (mustCreate)
                cal.create();
        if (dateEl) {
                var dateValue;
                //figure out if the it's in value or innerHTML
                if (dateEl.value) {
                        dateValue = dateEl.value;
                } else {
                        dateValue = dateEl.innerHTML;
                }
                if (dateValue != "") { //if there is a date to initialize from
                        var parsedDate = Date.parseDate(dateEl.value || dateEl.innerHTML, dateFmt);
                        //This check for when webmaster initializes the box with something like
                        //"check in"
                        if (parsedDate != null) { //if it's parsable
                            cal.setDate(parsedDate);
                        }
                }
        }

        var position = triggerEl.getPosition();
        cal.showAt(position[0], (position[1] + 21));

        return false;
    };

    return cal;
};


var triggerF = new Ext.form.TriggerField({
                        id: 'deleteFrom',
                        triggerClass: 'x-form-date-trigger',
                        readOnly: true,
                        fieldLabel: 'From',
                        name: 'from',
                        anchor:'95%'});

var fromCal = new calendar_setup({inputField:triggerF});


在ie6, ff3下正常。

今天试了下别人改写的extjs dateField(http://extjs.com/forum/showthread.php?t=21931),但是我这里显示不正常。有功夫再研究一下怎么改他本来的控件。
  • 大小: 9.6 KB
分享到:
评论

相关推荐

    ext2.0(dateTimeField)

    在`ext2.0`中,`dateTimeField`是一个特定的组件,用于处理日期和时间输入,提供用户友好的界面进行选择。 日期和时间控件在Web应用中起着至关重要的作用,它们允许用户以标准化的格式输入和选择日期及时间,提高了...

    Extjs扩展DateTimeField时间初始化及点击日期显示Bug

    本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发中遇到的难题。 DateTimeField是EXTJS中用于处理日期和时间选择的组件,它允许用户同时选择日期和时间,...

    ext2.0 DateTimeField控件

    在EXT JS 2.0框架中,DateTimeField控件是一个非常实用的组件,它扩展了基本的DateField控件,提供了更丰富的日期时间选择功能,包括小时、分钟和秒的显示与选择。这个控件是为了解决用户需要输入精确到秒的日期时间...

    ExtJs中datetimefield扩展

    在ExtJs中,DateTimeField是一种特殊的输入控件,用于处理日期和时间的组合输入。它扩展了基础的DateField,并提供了更丰富的功能,适合在Web应用程序中进行日期和时间选择。这个“ExtJs中datetimefield扩展”可能...

    extjs 4.1.1a datetimefield 日期时间选择框

    网上下载的datetimefield 在4.1.1下面不能正常使用,自己参照代码做了大量修改 使用方法 Ext.Loader.setConfig({ disableCaching: false, enabled: true, paths: { 'Ext': '../../ext-4.1.1', 'Ext.ex': '.' ...

    Ext-DateTimeField

    Ext-DateTimeField是基于ExtJs框架的一个特定组件,主要用于在Web应用中实现日期和时间的选择功能。这个控件允许用户方便地输入或者选择一个日期和时间值,通常用于表单填写或者数据录入场景。然而,根据描述中的...

    Extjs4.2_DateTimeField

    本资源在ie8、火狐和谷歌浏览器上面测试通过。 注: 这个控件只使用于 Extjs4.2 对于 Extjs4.0 和 Extjs4.1 的 datetimefield 大家可以到csdn下载, http://download.csdn.net/detail/binglovezi/5071560#comment

    extjs5 带时分秒(datetimefield)

    下载解压完之后 放到自己所需的文件夹,调用的话直接在app.js中requires:['Platform.utils.DatetimeField','Platform.utils.DatetimePicker'] .在需要用到该时间控件的地方{xtype:'datetimefield',format:'Y-m-d H:i:...

    Ext DateTimeField时间扩展!

    在编程领域,DateTimeField是许多数据存储框架中用于处理日期和时间信息的字段类型。这篇博客文章“Ext DateTimeField时间扩展!”可能探讨了如何在特定的框架或库(可能是ExtJS或其他JavaScript库)中扩展...

    extjs6 datetimefield 扩展时间控件 分时秒控件

    在EXTJS6框架中,`datetimefield`是一个用于输入日期和时间的组件,它提供了用户友好的界面,方便用户选择日期和时间。然而,标准的`datetimefield`默认只支持到分钟级别的精度,如果你需要精确到秒的控制,通常需要...

    extjs 4.1.1a datetimefield 日期时间选择框(修改版)

    在这个“extjs 4.1.1a datetimefield 修改版”中,开发者对原版DateTimeField进行了一些结构调整,以提高用户体验或增强功能。调整可能包括但不限于改进布局、增加自定义格式选项、优化事件处理或增强可访问性。...

    .NET下日期时间选择控件DateTimeField

    `.NET下日期时间选择控件DateTimeField`就是一种方便开发者在Web界面中获取用户输入日期和时间信息的组件。该控件是针对ExtJS 4.1和Ext.NET 2.0这两个JavaScript库进行定制开发的,提供了丰富的功能和友好的用户体验...

    extjs 4.1.1a datetimefield 日期时间选择框(第二次修改版)

    DateTimeField是该框架中的一种组件,它允许用户同时选择日期和时间,适用于需要精确输入日期时间值的应用场景。在这个第二次修改版中,开发人员针对上一版本进行了一些优化,使代码更加简洁,并修复了已知的BUG。 ...

    如何在Django中添加没有微秒的 DateTimeField 属性详解

    在Django中,DateTimeField是用于存储日期和时间的字段类型,它默认会保存到数据库时包含微秒的精度。然而,在某些情况下,你可能希望避免这种精度,特别是在与前端应用或其他系统交互时,可能会遇到微秒不兼容或...

    Extjs4.1可用的日期时间选择控件

    `dateTimeField.js`可能是实现这个组合控件的具体代码。 1. **日期选择器(Date Field and Date Picker)**: - `Ext.form.field.Date`是EXTJS中的日期输入字段,它允许用户输入日期或者通过弹出的日历控件选择...

    Ext-datatimefield日期与时间选择器精确至时分秒

    1.此控件支持Ext3.2及以上版本 2.用法与Ext.form.DateField一样,xtype:'datetimefield' 3.不需要导入css或其他js 4.解决某些插件导入会显示对象未定义问题

    EXTJS5 日期时分秒控件

    EXTJS5 日期时分秒控件,直接引用到程序中使用。网上有很多extjs4版本的和EXTJS5不...{labelWidth:60,width: 220,name:'mydate',fieldLabel: '日期',allowBlank: false,xtype: 'datetimefield',format:"Y-m-d H:i:s"}

    Ext 4.x 时间和日期控件

    Extjs 4.x 有日期的控件和时间的控件,由于没有同时带有时间和日期的控件,所以写了一个,引入文件,xtype 修改为datetimefield 即可

    django-datetime-widget:引导django-datetime-widget是Django框架中DateField,Timefiled和DateTimeField的简单干净的小部件。 它基于Bootstrap日期时间选择器,同时支持Bootstrap 3和Bootstrap 2

    django-datetime-widget是一个简单干净的选择器小部件,用于Django框架中的DateField,Timefiled和DateTimeField。 它基于,同时支持Bootstrap 3和Bootstrap 2。 django-datetime-widget在您需要在模型/表单中使用...

Global site tag (gtag.js) - Google Analytics