dijit.byId('viewEditParameterValue').value не возвращает, а .get('value') возвращает

Я определил два текстовых ввода в моем html следующим образом.

<revit:validationTextBox id="viewEditParameterValue" maxLength="2500" 
                                        required="true" 
                                        invalidMessage="#{commonuielements.msg_invalid_input}">
                                    </revit:validationTextBox>

<revit:validationTextBox id="viewEditParameterValDefault"
                                        maxLength="100" 
                                        regExp="#{commonuielements.parameter_default_value_regex}" 
                                        invalidMessage="#{commonuielements.msg_invalid_input}"
                                        trim="true"></revit:validationTextBox>

Я пытаюсь получить значение двух TextBox в функции java-скрипта, подобной этой.

var value = dijit.byId('viewEditParameterValDefault').value;
var parValue = dijit.byId('viewEditParameterValue').value;

Но для первого я получаю значение, но вторая строка возвращает пустое значение, тогда как если я использую строку ниже, я получаю значение.

var parValue = dijit.byId('viewEditParameterValue').get('value');

У кого-нибудь есть предположения, в чем может быть причина?


person Prashant    schedule 30.08.2015    source источник


Ответы (1)


get('value') — это правильный способ получить значение виджета ввода формы Dijit. Непосредственный доступ к value не гарантирует согласованных результатов (или результатов, которые вы ожидаете), поскольку он будет зависеть от реализации. Возможно, это даже более важно для некоторых подклассов TextBox, где в игру вступают форматирование или сопоставление.

Более того, настройка value напрямую ничего не даст, тогда как вызов set('value', ...) корректно обновит виджет.

person Ken Franqueiro    schedule 31.08.2015