Setting the value (selected option) of a dijit.form.Select widget

*爱你&永不变心* 提交于 2019-11-29 11:58:28

问题


I have a dijit.form.Select widget. It's tied to a data store, if that matters. It's filled with several options already. All I want to do is programmatically set its value. I can get its value using myWidget.attr('value') but if I try to do myWidget.attr('value', 5) for example (where 5 is one of the valid values), all it does is reset the widget to select the very first option, no matter what value I give it.

This seems to be a bug, and there aren't any tests or documentation which show how to accomplish what I want to. But is there some way, even if it's a dirty hack?

I'm using Dojo 1.4.0. Note that dijit.form.Select is the new name for dojox.form.DropDownSelect.

edit: I even tried resetting the widget with all new options, but it ignores the option which has selected = true and just selects the first option. There must still be a way though.


回答1:


Even if your values are ints, if you set your integer to a string then this will work.

dijit.byId( 'my_select' ).attr( 'value', String( 5 ) );



回答2:


Turns out it's a bug - if the option values aren't strings, it won't work (mine were integers).




回答3:


Repost of my comment: There is a test page here: dojo archive that you can mess with. Using fire-bug I used dijit.byId('s9').attr('value', 'CO') successfully on that page. That will set the "store-based" Select on that page.

But as you said I set it using a string and you were using integers so I didn't see the bug. Good catch.



来源:https://stackoverflow.com/questions/2215979/setting-the-value-selected-option-of-a-dijit-form-select-widget

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!