在XPage中获取服务器端JavaScript中的客户端字段值

Dan*_*Dan 1 client-side xpages xpages-ssjs

我似乎错过了XPages的一些东西.我有一个服务器端JS的按钮,它试图从文档的2个现有字段中获取值.我在表单中输入值,单击按钮时字段值为空.

var doc:NotesDocument = currentDocument.getDocument();
var email = doc.getItemValue("email");
_dump("Email: " + email);
var password = doc.getItemValue("password");
_dump("Password: " + password);
Run Code Online (Sandbox Code Playgroud)

我可以使用"_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);
Run Code Online (Sandbox Code Playgroud)

我尝试在电子邮件和密码字段存在的面板上进行部分刷新,但这仍然无济于事.

我是否必须先保存文档并再次获取文档以获取字段值?我是否必须在客户端JS中传递字段值然后传入范围(我不认为可以从客户端JS完成)?这可能是一个简单的解决方案,但我不确定为什么会这样.

谢谢!

Tim*_*ony 6

直接从数据源检索值:

var email = currentDocument.getValue("email");
var password = currentDocument.getValue("password");
Run Code Online (Sandbox Code Playgroud)

  • +1,你抓住它们时也需要小心.例如,如果验证失败,则值不会回发到文档,您必须在component.getsubmittedValue之后 (4认同)