• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Rich text получить значение csjs

  • Автор темы Cheburan
  • Дата начала
C

Cheburan

Здравствуйте.
Есть на Xpage рт-поле

HTML:
<xp:inputRichText id="text" value="#{document1.text}"
dojoType="ibm.xsp.widget.layout.RichText">
</xp:inputRichText>

Хочется получить в CSJS значение, которое ввел в это поле пользователь.
Код вида
JavaScript:
var value = '';
var field=dojo.query('[id$="'+key+'"]').forEach (function (node, index) {
	if (node.value!=undefined){
		value = value + node.value;
	}
});

(в key лежит "text" естественно) возвращает пустое значение.
Пример отсюда валится с ошибкой "CKEDITOR is not defined"
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
Пример из твоей ссылки нормально работает
 

NickProstoNick

Статус как статус :)
Lotus Team
22.08.2008
1 851
27
BIT
0
ну дык не указывать тип. Или это критично?
 
C

Cheburan

Коллеги говорят, что без типа не отображает рт поле, если открывать в мобильном устройстве.
 
C

Cheburan

Хотелось бы, так как проверка нужна до сохранения документа, сообщения о необходимости заполнения полей выводятся примерно таким образом сейчас (не мое, старшие товарищи писали):
JavaScript:
function checkValidation (fieldList) {
	try {
		var result = true;
		for (var key in fieldList) {
		var fieldMsg=dojo.query('[id$="'+key+'Message"]')[0];
 
		var value = '';
		var field=dojo.query('[id$="'+key+'"]').forEach (function (node, index) {
			if (node.value!=undefined){
				value = value + node.value;
			}
		});
 
		if ( value == ''){
			fieldMsg.className = "alert alert-danger";
			fieldMsg.innerHTML = "Необходимо заполнить поле '"+ fieldList[key]+"'!"
			fieldMsg.style.display = "";
			result = false;
		} else {
			fieldMsg.style.display = "none";
		}
	}
	return result;
	}catch (e){
		console.log (e);
	return false;
	}
}
 
R

romych2004

Используя dojo-type Вы используете dijit, т.е. работаете не с DOM, а с js объектом
Замените тело forEach на:
JavaScript:
var dj = dijit.byId(node.id);
if(dj) {
	value += dj.value;
} else {
	if (node.value!=undefined){
		value = value + node.value;
	}
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!