Internet explorer 8 动态组合和mootools get方法在IE8中不起作用
我对Mootools get方法和IE8有问题。这就是问题所在 我有一个select组合,它用Request.HTML动态加载选项 HTML: 此外,“选择”还有一个自定义样式,其中包括: 问题是当我加载模型的内容时(抛出一个错误): 对象不支持此属性或方法 我不知道为什么,但是Internet explorer 8 动态组合和mootools get方法在IE8中不起作用,internet-explorer-8,combobox,get,mootools,set,Internet Explorer 8,Combobox,Get,Mootools,Set,我对Mootools get方法和IE8有问题。这就是问题所在 我有一个select组合,它用Request.HTML动态加载选项 HTML: 此外,“选择”还有一个自定义样式,其中包括: 问题是当我加载模型的内容时(抛出一个错误): 对象不支持此属性或方法 我不知道为什么,但是 span.addEvent('change',function(){ span.set('text',this.options[this.options.selectedIndex].get('text'))
span.addEvent('change',function(){
span.set('text',this.options[this.options.selectedIndex].get('text'));
});
不像通常那样与IE8配合使用,它与其他浏览器完美配合。我正在使用Mootools 1.3.2
有什么想法吗?非常感谢。您无法以跨浏览器的方式通过innerHTML更新元素内容,更新:$model将尝试这样做
我建议通过onComplete:function{}进行重构,其中:
删除模型的所有子元素
迭代通过HTML发送的选项元素,并将它们注入模型
调用自定义样式提供的任何方法(如果有),以刷新model和fireEventchange的对象成员,突出显示新选定的脚本选择(如果需要)。
关于你的第二个问题
this.options.getvalue返回所选值
如果是多选,则可以有多个值
mootools提供selectel.getSelected,它返回一个选项数组,您可以通过迭代从中获取文本。因此:
selectel.getSelected.gettext将在多选时返回[sometext]或[sometext1,sometext2]。谢谢@Dimitar。正如您所解释的,在删除了select with.empty的所有子级之后,我尝试使用这个responseElements.eachFunction{e.inject$'model';};但这在IE中不起作用。我做错了什么?谢谢,伙计。我不敢相信INTERNET EXPLORER仍然在制定自己的恼人的规则,我们需要找到解决这些问题的办法。。。因此,解决方案是,在注入之前,将其封装在select中,但我还是会尝试JSON。奇怪的是。->在jquery中尝试了它,结果很有效。所以他们必须在他们的代码中有一个解决方法,我不是jquery用户,所以这是一个实验。图-与mootools的一些核心开发人员进行了讨论,他们没有留下深刻印象。记录在案-即使是IE也无法理解这种对应关系opt.innerHTML=responseElements[i].innerHTML,因此最后我更改了我的sql查询,并为选择字段添加了一个id,以便将它们放入innerHTML:opt.innerHTML=responseElements[i]身份证件100%awesomeness.this.response.elements.length短1如果选项在ie8中没有父选项-小心!
var req = new Request.HTML({
method: 'get',
url: loadModels,
data: "model="+model,
update: $('model'),
}).send();
span.addEvent('change',function(){
span.set('text',this.options[this.options.selectedIndex].get('text'));
});