设置dijit.form.Select小部件的值(选定选项)

aeh*_*lke 14 javascript dojo

我有一个dijit.form.Select小部件.如果重要的话,它与数据存储绑定在一起.它已经充满了几个选项.我想要的只是以编程方式设置其值.我可以使用它的值,myWidget.attr('value')但如果我尝试做myWidget.attr('value', 5)例如(其中5是有效值之一),它所做的只是重置小部件以选择第一个选项,无论我给它什么值.

这似乎是一个错误,并没有任何测试或文档显示如何完成我想要的.但有什么办法,即使这是一个肮脏的黑客?

我正在使用Dojo 1.4.0.请注意,dijit.form.Select是dojox.form.DropDownSelect的新名称.

编辑:我甚至尝试使用所有新选项重置窗口小部件,但它忽略了选项,selected = true只选择了第一个选项.但仍然有一种方法.

voi*_*ate 15

即使您的值是整数,如果您将整数设置为字符串,那么这将起作用.

dijit.byId( 'my_select' ).attr( 'value', String( 5 ) );
Run Code Online (Sandbox Code Playgroud)


aeh*_*lke 11

原来这是一个错误 - 如果选项值不是字符串,它将无法工作(我的是整数).

  • 我认为这实际上是阵列/哈希在js中工作的副作用.如果你使用int,它会认为你正在索引数组,而不是将它用作哈希. (3认同)