Ответ 1
Даже если ваши значения являются ints, если вы установите целое число на строку, это будет работать.
dijit.byId( 'my_select' ).attr( 'value', String( 5 ) );
У меня есть виджет dijit.form.Select. Это связано с хранилищем данных, если это имеет значение. Он уже заполнен несколькими вариантами. Все, что я хочу сделать, это программно установить его значение. Я могу получить его значение с помощью myWidget.attr('value')
, но если я попытаюсь сделать myWidget.attr('value', 5)
например (где 5 - одно из допустимых значений), все, что он делает, это reset виджет, чтобы выбрать самый первый вариант, независимо от того, что значение, которое я ему даю.
Кажется, это ошибка, и нет никаких тестов или документации, которые показывают, как выполнить то, что я хочу. Но есть ли какой-то способ, даже если это грязный хак?
Я использую Dojo 1.4.0. Обратите внимание, что dijit.form.Select - это новое имя для dojox.form.DropDownSelect.
edit: Я даже попробовал сбросить виджет со всеми новыми параметрами, но он игнорирует параметр с selected = true
и просто выбирает первый вариант. Однако все равно должен быть способ.
Даже если ваши значения являются ints, если вы установите целое число на строку, это будет работать.
dijit.byId( 'my_select' ).attr( 'value', String( 5 ) );
Выдает ошибку - если значения параметра не являются строками, это не сработает (мои были целыми).
Отказ от моего комментария: Здесь есть тестовая страница: dojo archive, с которым вы можете общаться. Используя fire-bug, я использовал dijit.byId('s9'). Attr ('value', 'CO') успешно на этой странице. Это установит "Сохранить на основе". Выберите на этой странице.
Но, как вы сказали, я установил его с помощью строки, и вы использовали целые числа, поэтому я не видел ошибку. Хороший улов.