以前用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`是一个特定的组件,用于处理日期和时间输入,提供用户友好的界面进行选择。 日期和时间控件在Web应用中起着至关重要的作用,它们允许用户以标准化的格式输入和选择日期及时间,提高了...
本文将深入探讨“Extjs扩展DateTimeField时间初始化及点击日期显示Bug”这一主题,帮助开发者解决实际开发中遇到的难题。 DateTimeField是EXTJS中用于处理日期和时间选择的组件,它允许用户同时选择日期和时间,...
在EXT JS 2.0框架中,DateTimeField控件是一个非常实用的组件,它扩展了基本的DateField控件,提供了更丰富的日期时间选择功能,包括小时、分钟和秒的显示与选择。这个控件是为了解决用户需要输入精确到秒的日期时间...
在ExtJs中,DateTimeField是一种特殊的输入控件,用于处理日期和时间的组合输入。它扩展了基础的DateField,并提供了更丰富的功能,适合在Web应用程序中进行日期和时间选择。这个“ExtJs中datetimefield扩展”可能...
网上下载的datetimefield 在4.1.1下面不能正常使用,自己参照代码做了大量修改 使用方法 Ext.Loader.setConfig({ disableCaching: false, enabled: true, paths: { 'Ext': '../../ext-4.1.1', 'Ext.ex': '.' ...
Ext-DateTimeField是基于ExtJs框架的一个特定组件,主要用于在Web应用中实现日期和时间的选择功能。这个控件允许用户方便地输入或者选择一个日期和时间值,通常用于表单填写或者数据录入场景。然而,根据描述中的...
本资源在ie8、火狐和谷歌浏览器上面测试通过。 注: 这个控件只使用于 Extjs4.2 对于 Extjs4.0 和 Extjs4.1 的 datetimefield 大家可以到csdn下载, http://download.csdn.net/detail/binglovezi/5071560#comment
下载解压完之后 放到自己所需的文件夹,调用的话直接在app.js中requires:['Platform.utils.DatetimeField','Platform.utils.DatetimePicker'] .在需要用到该时间控件的地方{xtype:'datetimefield',format:'Y-m-d H:i:...
在编程领域,DateTimeField是许多数据存储框架中用于处理日期和时间信息的字段类型。这篇博客文章“Ext DateTimeField时间扩展!”可能探讨了如何在特定的框架或库(可能是ExtJS或其他JavaScript库)中扩展...
在EXTJS6框架中,`datetimefield`是一个用于输入日期和时间的组件,它提供了用户友好的界面,方便用户选择日期和时间。然而,标准的`datetimefield`默认只支持到分钟级别的精度,如果你需要精确到秒的控制,通常需要...
在这个“extjs 4.1.1a datetimefield 修改版”中,开发者对原版DateTimeField进行了一些结构调整,以提高用户体验或增强功能。调整可能包括但不限于改进布局、增加自定义格式选项、优化事件处理或增强可访问性。...
`.NET下日期时间选择控件DateTimeField`就是一种方便开发者在Web界面中获取用户输入日期和时间信息的组件。该控件是针对ExtJS 4.1和Ext.NET 2.0这两个JavaScript库进行定制开发的,提供了丰富的功能和友好的用户体验...
DateTimeField是该框架中的一种组件,它允许用户同时选择日期和时间,适用于需要精确输入日期时间值的应用场景。在这个第二次修改版中,开发人员针对上一版本进行了一些优化,使代码更加简洁,并修复了已知的BUG。 ...
在Django中,DateTimeField是用于存储日期和时间的字段类型,它默认会保存到数据库时包含微秒的精度。然而,在某些情况下,你可能希望避免这种精度,特别是在与前端应用或其他系统交互时,可能会遇到微秒不兼容或...
`dateTimeField.js`可能是实现这个组合控件的具体代码。 1. **日期选择器(Date Field and Date Picker)**: - `Ext.form.field.Date`是EXTJS中的日期输入字段,它允许用户输入日期或者通过弹出的日历控件选择...
1.此控件支持Ext3.2及以上版本 2.用法与Ext.form.DateField一样,xtype:'datetimefield' 3.不需要导入css或其他js 4.解决某些插件导入会显示对象未定义问题
EXTJS5 日期时分秒控件,直接引用到程序中使用。网上有很多extjs4版本的和EXTJS5不...{labelWidth:60,width: 220,name:'mydate',fieldLabel: '日期',allowBlank: false,xtype: 'datetimefield',format:"Y-m-d H:i:s"}
Extjs 4.x 有日期的控件和时间的控件,由于没有同时带有时间和日期的控件,所以写了一个,引入文件,xtype 修改为datetimefield 即可
django-datetime-widget是一个简单干净的选择器小部件,用于Django框架中的DateField,Timefiled和DateTimeField。 它基于,同时支持Bootstrap 3和Bootstrap 2。 django-datetime-widget在您需要在模型/表单中使用...