2013-06-12 92 views
-1

我在XPage和一個標籤中有兩個編輯框。XPage中的onchange事件

休假開始日期:編輯框 休假結束日期:編輯框 假期摘自:標籤

我想calulate在日期的diffence並得到它在標籤中使用第二的onChange事件下面的代碼計算(離開結束日期)編輯框中,但是,換款的編輯框中的值,它會清除兩個領域並沒有什麼被計算:

var leaveStartDate = document1.getValue("fld_Leave_Start_Date1"); 
var leaveEndDate = document1.getValue("fld_Leave_End_Date1"); 

var difference = null; 
try{ 
    var nDateStart = session.createDateTime(leaveStartDate ); 
    var nDateEnd = session.createDateTime(leaveEndDate); 

    difference = nDateEnd.timeDifference(nDateStart); 
    difference = (Math.floor(difference/86400)) + 1; 

}catch(e) 
{ 
    return e 
} 
document1.setValue("fld_NoOfDays",difference); 

我試圖getComponent(「fld_Leave_Start_Date1」)getSubmittedValue(),但沒有工作。 有人可以請幫忙。

非常感謝!

+0

請在您的onChange事件中添加詳細信息。這是部分刷新嗎?它刷新了什麼組件? –

+1

只有兩次使用getSubmittedValue()。如果您使用驗證程序並想檢查組件的值。或者,如果您在部分刷新的事件屬性中選擇了「不驗證或更新值」。所有其他地方它將是空白的。 –

回答

1

如果編輯框被清除,聽起來您已將事件設置爲完全刷新而不是部分刷新。

清除字段的其他可能原因是如果您使用的是部分執行模式(execMode =「部分」在eventHandler的源窗格中),但指定了不包含兩個編輯框的execId。 (默認情況下,部分執行會在當前組件上運行,因此您不應該丟失該編輯框的值。)但我不認爲是這種情況。