Получить значение поля на стороне клиента в JavaScript на стороне сервера в XPages

Кажется, я что-то упускаю с XPages. У меня есть кнопка с JS на стороне сервера, которая пытается получить значение из двух существующих полей в документе. Я ввожу значения в форму, и значения полей пусты при нажатии кнопки.

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

Я вижу, что значения в моем log.nsf пусты, используя команду «_dump».

Когда я использую JS на стороне клиента для захвата полей, они заполняются — я вижу в предупреждениях:

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

Я попытался частично обновить панель, где существуют поля электронной почты и пароля, но это все равно не помогло.

Должен ли я сначала сохранить документ и снова получить документ, чтобы получить значения поля? Должен ли я передавать значения полей в JS на стороне клиента, а затем передавать в область видимости (я не думаю, что это можно сделать с помощью JS на стороне клиента)? Вероятно, это простое решение, но я не уверен, почему это происходит.

Спасибо!


person Dan    schedule 19.02.2013    source источник


Ответы (1)


Получите значения непосредственно из источника данных:

var email = currentDocument.getValue("email");
var password = currentDocument.getValue("password");
person Tim Tripcony    schedule 20.02.2013
comment
+1, также вы должны быть осторожны, когда берете их. Например. если проверка не удалась, значения не отправляются обратно в документ, и вам нужно идти после component.getsubmittedValue - person stwissel; 20.02.2013
comment
getSubmittedValue работал отлично. На самом деле я использовал этот фрагмент (openntf.org/XSnippets.nsf/snippet.xsp? id=getcomponentvalue) и извлекает значение поля. Я ценю всю помощь - спасибо! - person Dan; 20.02.2013