Странная проблема с получением значения из текстового поля Dojo

#javascript #dojo

Вопрос:

У меня есть форма входа в систему, в которой использовался dojo dijit ( версия dojo 1.9.1 (43) )

 <div><input data-dojo-type="dijit.form.TextBox" type="text" data-dojo-attach-point="loginUserId" data-dojo-props="placeHolder:'%M_AGENT_ID%'" ></div>
 

И здесь инициализируется contentWidget:

 _contentWidget =new (declare(
                            [_Widget, TemplatedMixin, WidgetsInTemplateMixin],
                            {templateString:  toolbar_html}
                        ));
 

Страница загружается без каких-либо ошибок, и когда я вручную ввожу текст в это пользовательское текстовое поле, может сработать «onchange», но
_contentWidget.loginUserId.get('value') ничего не возвращает, и при вводе текста в это текстовое поле заполнитель не исчезает, как следовало бы.

Не могли бы вы помочь мне выяснить, есть ли что-то не так с самим виджетом dojo или загрузчиком/ инициализатором dojo. Спасибо

Ответ №1:

Я нашел первопричину. Эта проблема связана с импортом дополнительных библиотек dojo/dijit несколько раз В приведенном выше примере, когда эти библиотеки были импортированы после импорта dojo.js

 <script type="text/javascript" charset="utf-8" src="/common/dojo/dojox/widget/Toaster.js?2.7.5.12.14489"></script>
<script type="text/javascript" charset="utf-8" src="/common/dojo/dojo/cldr/nls/en/gregorian.js?2.7.5.12.14489"></script>
<script type="text/javascript" charset="utf-8" src="/common/dojo/dojo/cldr/nls/en/number.js?2.7.5.12.14489"></script>
<script type="text/javascript" charset="utf-8" src="/cim/common/dojo/dijit/form/Textarea.js?2.7.5.12.14489"></script>
 

Это может привести к некоторым другим ошибкам :» определение не определено.