2013-02-19 101 views
1

我似乎錯過了XPage的一些內容。我有一個按鈕,它具有服務器端JS,它試圖從文檔上的2個現有字段獲取值。我在表單中輸入值,點擊按鈕時字段值爲空。在XPages中的服務器端JavaScript中獲取客戶端字段值

var doc:NotesDocument = currentDocument.getDocument(); 
var email = doc.getItemValue("email"); 
_dump("Email: " + email); 
var password = doc.getItemValue("password"); 
_dump("Password: " + password); 

通過使用「_dump」命令,我可以看到log.nsf中的值爲空。

當我使用客戶端JS搶領域,它們填充 - 我可以在警示語句看到:

var doc = document; 
var email = doc.getElementById("#{id:email1}").value; 
alert(email); 
var password = doc.getElementById("#{id:password1}").value; 
alert(password); 

我試圖在電子郵件和密碼字段存在面板上的局部刷新,但這仍然沒有幫助。

我是否必須先保存文檔並再次獲取文檔以獲取字段值?我必須在客戶端JS中傳遞字段值,然後傳入範圍(我不認爲這可以從客戶端JS完成)?這可能是一個簡單的解決方案,但我不知道爲什麼會發生這種情況。

謝謝!

回答

6

直接從數據源中檢索值:

var email = currentDocument.getValue("email"); 
var password = currentDocument.getValue("password"); 
+4

+1,也需要你的時候抓住他們要小心。例如。如果驗證失敗,則值不會發回到文檔,您必須遵循component.getsubmittedValue – stwissel 2013-02-20 05:56:33

+0

getSubmittedValue工作良好。我實際上使用了這個片段(http://openntf.org/XSnippets.nsf/snippet.xsp?id=getcomponentvalue),它拉動了字段值。我感謝所有的幫助 - 謝謝! – Dan 2013-02-20 15:47:26

相關問題