我们有一个带有Editable = true
的Datefield组件<mx:DateField id="startDate"
width="120"
editable="true"
formatString="MM/DD/YYYY"
selectableRange="{{rangeStart : new Date(2010,0,1), rangeEnd : new Date()}}"
showToday="true"
labelFunction="formatDate"
restrict="[0-9] '\/'" change="startDate_clickHandler(event)"
yearNavigationEnabled="true"
text="{}" tabIndex="15" />
日历包含我们想要的一切(只能在2010年1月1日之后选择有效日期)。现在的问题是,如果用户输入(Editable = true)无效日期或任何日期&lt; 01/01/2010,我如何验证并显示日期无效的警报。如果您对此有任何帮助,我们将不胜感激。
由于
哈里什
答案 0 :(得分:1)
“日期字段”组件具有您可以收听的“数据更改”事件。因此,您可以将处理程序附加到该事件,并根据需要进行验证。
答案 1 :(得分:1)
DateField
组件有一个valueCommit
事件,您可以收听。因此,您可以将处理程序附加到该事件,并根据需要进行验证。
答案 2 :(得分:0)
也许你可以在看到所有这些很好的例子后尝试不同的方法
答案 3 :(得分:0)
您可以通过以下方式完成。
<fx:Script>
<![CDATA[
import mx.controls.DateField;
import mx.utils.StringUtil;
private function parseStartDate(valueString:String, inputFormat:String):Date
{
if (StringUtil.trim(valueString) == "")
return null;
var date:Date = DateField.stringToDate(valueString, inputFormat);
if (date == null)
date = new Date(startDate.selectableRange.rangeEnd.time);
else if (date.time < startDate.selectableRange.rangeStart.time)
date = new Date(startDate.selectableRange.rangeStart.time);
else if (date.time > startDate.selectableRange.rangeEnd.time)
date = new Date(startDate.selectableRange.rangeEnd.time);
return date;
}
]]>
</fx:Script>
<mx:DateField id="startDate"
width="120"
selectableRange="{{rangeStart : new Date(2010,0,1), rangeEnd : new Date()}}"
showToday="true"
yearNavigationEnabled="true"
parseFunction="parseStartDate"
editable="true"
formatString="MM/DD/YYYY"
restrict="[0-9/]"/>
<fx:Script>
<![CDATA[
import mx.controls.DateField;
import mx.utils.StringUtil;
private function parseStartDate(valueString:String, inputFormat:String):Date
{
if (StringUtil.trim(valueString) == "")
return null;
var date:Date = DateField.stringToDate(valueString, inputFormat);
if (date == null)
date = new Date(startDate.selectableRange.rangeEnd.time);
else if (date.time < startDate.selectableRange.rangeStart.time)
date = new Date(startDate.selectableRange.rangeStart.time);
else if (date.time > startDate.selectableRange.rangeEnd.time)
date = new Date(startDate.selectableRange.rangeEnd.time);
return date;
}
]]>
</fx:Script>
<mx:DateField id="startDate"
width="120"
selectableRange="{{rangeStart : new Date(2010,0,1), rangeEnd : new Date()}}"
showToday="true"
yearNavigationEnabled="true"
parseFunction="parseStartDate"
editable="true"
formatString="MM/DD/YYYY"
restrict="[0-9/]"/>