在 dojo 中创建选择选项时
dojo.byId("it1").add(dojo.create("option", { value:'1',innerHTML:'Iteration 1' }));
我在 IE8 中遇到了 Invalid argument 错误,其余浏览器工作正常。
在 dojo 中创建选择选项时
dojo.byId("it1").add(dojo.create("option", { value:'1',innerHTML:'Iteration 1' }));
我在 IE8 中遇到了 Invalid argument 错误,其余浏览器工作正常。
这是因为浏览器已经实现了某种故障转移机制。或者甚至标准已经改变,不确定是什么。事实仍然是,在旧浏览器中,该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
方法)在 IE8 之前(包括 IE8)中将无法正常工作。该元素根本没有连接到其父表单,因此不会在提交时发送到服务器。