在创建选择和选项时,DOJO内部的HTML问题?

时间:2013-11-11 12:03:58

标签: dojo

在dojo中创建选择选项

dojo.byId("it1").add(dojo.create("option", { value:'1',innerHTML:'Iteration 1' }));

我在IE8中遇到了一个无效的参数错误,其余浏览器工作正常。

1 个答案:

答案 0 :(得分:1)

这是因为浏览器实现了一种故障转移机制。或者甚至标准已经改变,不确定它是什么。 事实仍然是,在旧版浏览器中,option元素的实现很奇怪。考虑以下以编程方式创建新的option DOM:

text='Iteration 1';
value=1;
defaultSelected = false;
selected=false;

document.getElementById('myselect').options.add(
  new Option(text, value, defaultSelected ,selected)
);

请参阅http://msdn.microsoft.com/en-us/library/ie/dd757810(v=vs.85).aspx

API也有参数,表明是否选择了选项。但这里有趣的部分是参数text

大致转化为

var opt = document.createElement('OPTION');
opt.text = text;
opt.value = value;

您会发现,以编程方式创建的选择(使用innerHTML方法)在IE之前和之后的IE中都无法正常工作。该元素根本没有连接到其父表单,因此,在提交时不会发送到服务器。