• 🚨 24 часа до повышения цены на курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    Последний день записи в текущий поток по старой цене Подробнее о курсе ...

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"
 
Пример из твоей ссылки нормально работает
 
ну дык не указывать тип. Или это критично?
 
Коллеги говорят, что без типа не отображает рт поле, если открывать в мобильном устройстве.
 
Хотелось бы, так как проверка нужна до сохранения документа, сообщения о необходимости заполнения полей выводятся примерно таким образом сейчас (не мое, старшие товарищи писали):
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;
	}
}
 
Используя 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;
	}
}
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD