<xp:validateExpression
message="İzinler pazar günü başlayamaz.">
<xp:this.expression><![CDATA[#{javascript:var DateConverter = {
dateToString: function(date:java.util.Date, pattern:String){
try {
if(!date){ return ''; }
var formatter = DateConverter.getFormatter(pattern);
return formatter.format(date);
} catch(e){
// ErrorHandling
}
},
stringToDate: function(dateString:String, pattern:String){
try {
if(!dateString){ return null; }
var formatter = DateConverter.getFormatter(pattern);
return formatter.parse(dateString);
} catch(e){
// ErrorHandling
}
},
getFormatter: function(pattern:String){
try {
var cacheKey = 'dateFormatter' + pattern;
var dateFormatter = applicationScope[ cacheKey ];
if(!dateFormatter){
dateFormatter = new java.text.SimpleDateFormat(pattern);
applicationScope[ cacheKey ] = dateFormatter;
}
return dateFormatter;
} catch(e){
// ErrorHandling
}
}
};
vDate = DateConverter.stringToDate(getComponent("LeaveDate").getSubmittedValue(), 'dd.MM.yyyy');
return (@Weekday(vDate) != 1);
}]]></xp:this.expression>
我想添加一個驗證來限制星期日的選擇。但是無論我選擇哪個日期,表達式都返回True。@Weekday對validateExpression的行爲
上面的代碼片段將字符串轉換爲日期,因爲我讀取getSubmittedValue()返回字符串,無論源字段類型如何。
return (@Weekday(getComponent("LeaveDate").getSubmittedValue()) != 1);
我的第一個代碼是這個,但我無法得到它的工作。
如果你看看我的代碼的最後一行,你會看到我使用了相同的。但獲得價值的部分是問題。 – senbon
不,你沒有。您嘗試使用getSubmittedValue(),您實際上只需輸入值即可。 - 值不是佔位符,而是包含驗證公式所在控件的提交值的變量的實際名稱。所以你真的鍵入:值(全部小) – stwissel