一个开始日期,一个结束日期,在选择的时候验证结束日期大于开始日期,目前只能做到大于等于,请教高手怎样实现大于,谢谢!
<script>
Ext.onReady(function()
{
Ext.QuickTips.init(); var myform = new Ext.FormPanel({
frame:true,
width:200,
layout:"form",
labelWidth:30,
title:"dateditor简单示例",
labelAlign:"left",
renderTo:Ext.getBody(),
items:[
{
name:'startDt',
id:'startDt',
xtype:"datefield",
vtype:'daterange',
fieldLabel:"From",
emptyText: '请选择日期 ...',
anchor:"99%",
format:'Y-m-d',
editable:false,
endDateField:'endDt'
},
{
name:'endDt',
id:'endDt',
vtype:'daterange',
fieldLabel:"TO",
format:"Y-m-d",
emptyText: '请选择日期 ...',
anchor:"99%",
xtype:'datefield',
editable:false,
startDateField: 'startDt'
}
]
});
});
</script>
<script type="text/javascript" language="javascript">
Ext.apply(Ext.form.VTypes, {
daterange : function(val, field) {
var date = field.parseDate(val);
if (!date) {
return;
}
if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
var start = Ext.getCmp(field.startDateField);
start.setMaxValue(date);
start.validate();
this.dateRangeMax = date;
}
else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
var end = Ext.getCmp(field.endDateField);
end.setMinValue(date);
end.validate();
this.dateRangeMin = date;
}
return true;
}
});
</script>
<script>
Ext.onReady(function()
{
Ext.QuickTips.init(); var myform = new Ext.FormPanel({
frame:true,
width:200,
layout:"form",
labelWidth:30,
title:"dateditor简单示例",
labelAlign:"left",
renderTo:Ext.getBody(),
items:[
{
name:'startDt',
id:'startDt',
xtype:"datefield",
vtype:'daterange',
fieldLabel:"From",
emptyText: '请选择日期 ...',
anchor:"99%",
format:'Y-m-d',
editable:false,
endDateField:'endDt'
},
{
name:'endDt',
id:'endDt',
vtype:'daterange',
fieldLabel:"TO",
format:"Y-m-d",
emptyText: '请选择日期 ...',
anchor:"99%",
xtype:'datefield',
editable:false,
startDateField: 'startDt'
}
]
});
});
</script>
<script type="text/javascript" language="javascript">
Ext.apply(Ext.form.VTypes, {
daterange : function(val, field) {
var date = field.parseDate(val);
if (!date) {
return;
}
if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
var start = Ext.getCmp(field.startDateField);
start.setMaxValue(date);
start.validate();
this.dateRangeMax = date;
}
else if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
var end = Ext.getCmp(field.endDateField);
end.setMinValue(date);
end.validate();
this.dateRangeMin = date;
}
return true;
}
});
</script>
解决方案 »
- 如何利用js跨域查询json数据并放置在html页面中,希望高人能把代码贴出来
- 怎么用js永久性的修改页面
- 如何遍历获取页面中未选择的单选按钮的父元素
- ASP.net (C#) 调用JS文件的问题
- 一个很奇怪的现象,动态添加表格的问题,希望哪位高手帮忙解决一下,很急,谢谢了!!!
- 不用window.open,如何把IE的TOOLBAR,MENUBAR等去掉
- js修改
- 关于getElementById方法,求指点
- 在JAVASCRIPT里有没有这样的?
- 安卓APP中html5 video点全屏按钮后白屏
- Javascript,focus()为何不能使InnerHTML方式新增的文本输入框获得输入焦点?
- 如何使form可以加载Record???
Ext的例子包里面就已经包含了两个日期控件的验证,
楼主也是大意,Ext4.x的例子请参考
http://dev.sencha.com/deploy/ext-4.0.2/examples/form/adv-vtypes.html
Ext3.x的类似。你下载一个源码,在例子包里面的examples/form/adv-vtypes.html文件。
Ext都封装好了,不用自己在做什么判断。
{
xtype:'datefield',
name:"startDt",
id:'startDt',
fieldLabel:TXT.PROJECT_FORM_FIELD_STARTDATE,
format:"Y-m-d",
anchor:"65%",
editable:false,
listeners: {
'select': function(f) {
var newDate = new Date(new Date(f.getValue()).valueOf() + 1 * 24 * 60 * 60 * 1000);
Ext.getCmp("endDt").setMinValue(newDate);
}
}
},
{
xtype:'datefield',
name:"endDt",
id:'endDt',
fieldLabel:TXT.PROJECT_FORM_FIELD_ENDDATE,
format:"Y-m-d",
anchor:"65%",
editable:false,
listeners: {
'select': function(f) {
var newDate = new Date(new Date(f.getValue()).valueOf() - 1 * 24 * 60 * 60 * 1000);
Ext.getCmp("startDt").setMaxValue(newDate);
}
}
},按钮“reset”的时候记得:
Ext.getCmp("startDt").setMaxValue();
Ext.getCmp("endDt").setMinValue();
panel.form.reset();发分了……