我正在使用dojo 1.6,我遇到的问题非常独特。看看下面的代码:无法在dojo中选择任何选项选择
var dd = new dijit.form.Select({
id: 'dd',
options: [{label:'option1'}, {label: 'option2'}],
});
dojo.connect(dd, "onChange", this, function(){
console.debug("trying to catch the change");
});
所以按照上面的代码我应该得到下一个下降,并能够在下拉改变价值和dojo.connect
赶上事件。虽然我确实得到了一个下拉菜单,默认情况下已选择option1
,但我无法选择option2
。请注意,这两个选项在下拉列表中都可见,但选择不起作用。 我在道场上相当陌生,但从所有例子来看,这似乎是下降的最低要求。我会很感激任何反馈。 编辑: 因此,事实证明,如果我设置选项,如[{label: 'option1', value: 1}, {label: 'option2', value:2}]
然后一切正常,因为我想。但是有人可以解释一下这里价值的作用,为什么它必须始终处于整数状态?
我还没有尝试一个字符串作为我的价值,但我知道如果我使用了像123499这样的数字,那么它仍然会以奇怪的行为结束。出于某种原因,或者至少在我的情况下,它必须是1,2,3 ......等等。谢谢你的解释! – Shay
我依稀记得在商店中有一些id为数字的问题,但不直接在选择dijit中。在商店的情况下,我不得不将id号码转换为字符串。我认为这与对象属性顺序不能保证数值属性名称有关,但其他人可以更好地回答。 – Frode
您是否有任何参考资料或您正在使用的dojo版本?因为现在我正在使用dojo 1.6,我不需要分配字符串值。我想如果跳出顺序,你将不得不保持他们的字符串。例如:'options:[{label:“foo”,value:1},{label:“bar”,value:2}]'对我来说工作正常。但是,如果我跳过'2',那么我需要按照您所示的方式使它们成为字符串。另外,另一种更改默认值的方法是'options:[{label:“foo”,value:1},{label:“bar”,value:2,selected:true}]'。不知道这是否会在你的版本中起作用。 – Shay