1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Lotus - Xpages", создана пользователем Cheburan, 6 май 2016.

  1. Cheburan

    Cheburan Member

    Репутация:
    0
    Регистрация:
    23 фев 2015
    Сообщения:
    17
    Симпатии:
    0
    Здравствуйте.
    Есть на Xpage рт-поле

    HTML:
    <xp:inputRichText id="text" value="#{document1.text}"
    dojoType="ibm.xsp.widget.layout.RichText">
    </xp:inputRichText>
    Хочется получить в CSJS значение, которое ввел в это поле пользователь.
    Код вида
    Код:
    var value = '';
    var field=dojo.query('[id$="'+key+'"]').forEach (function (node, index) {
    	if (node.value!=undefined){
    		value = value + node.value;
    	}
    }); 
    (в key лежит "text" естественно) возвращает пустое значение.
    Пример отсюда Validate Rich Text Field валится с ошибкой "CKEDITOR is not defined"
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.785
    Симпатии:
    42
    Пример из твоей ссылки нормально работает
     
  3. alexas1

    alexas1 Well-Known Member
    Lotus team

    Репутация:
    0
    Регистрация:
    10 апр 2014
    Сообщения:
    656
    Симпатии:
    228
    c dojoType="ibm.xsp.widget.layout.RichText"- геморрой, Cheburan прав ((
     
  4. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.785
    Симпатии:
    42
    ну дык не указывать тип. Или это критично?
     
  5. Cheburan

    Cheburan Member

    Репутация:
    0
    Регистрация:
    23 фев 2015
    Сообщения:
    17
    Симпатии:
    0
    Коллеги говорят, что без типа не отображает рт поле, если открывать в мобильном устройстве.
     
  6. NickProstoNick

    NickProstoNick Статус как статус :)
    Lotus team

    Репутация:
    0
    Регистрация:
    22 авг 2008
    Сообщения:
    1.785
    Симпатии:
    42
    а обязательно на CSJS?
     
  7. Cheburan

    Cheburan Member

    Репутация:
    0
    Регистрация:
    23 фев 2015
    Сообщения:
    17
    Симпатии:
    0
    Хотелось бы, так как проверка нужна до сохранения документа, сообщения о необходимости заполнения полей выводятся примерно таким образом сейчас (не мое, старшие товарищи писали):
    Код:
    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;
    	}
    }
     
  8. romych2004

    romych2004 Well-Known Member
    Lotus team

    Репутация:
    1
    Регистрация:
    1 апр 2013
    Сообщения:
    103
    Симпатии:
    19
    Используя dojo-type Вы используете dijit, т.е. работаете не с DOM, а с js объектом
    Замените тело forEach на:
    Код:
    var dj = dijit.byId(node.id);
    if(dj) {
    	value += dj.value;
    } else {
    	if (node.value!=undefined){
    		value = value + node.value;
    	}
    }
     
  9. lmike

    lmike нет, пердело совершенство
    Lotus team

    Репутация:
    3
    Регистрация:
    27 авг 2008
    Сообщения:
    6.406
    Симпатии:
    346
    ну это не завязано на клиентский JS, только из экономии ресурсов сервера
     
Загрузка...

Поделиться этой страницей