mootools 1.11 .setHTML在IE中不起作用

时间:2010-05-05 12:19:22

标签: javascript mootools

我正在尝试使用mootools 1.11创建一个表单动态,因为我无法升级atm。

我正在尝试操作选择字段以获得动态选项。这适用于Firefox& Chrome但不是IE8。希望有一个解决方案。

代码:

myOptions(hrs+1, 23, 'uur');
$('vertrektijd_uur').setHTML('<option value="">Kies uur</option>'+options_uur);

$('vertrektijd_uur').addEvent('change', function() {
            hrsChanged = $('vertrektijd_uur').getValue();
            hrsChanged = parseInt(hrsChanged);
            if(hrs+1 == hrsChanged)
            {
                myMinutes(parseInt(min));
                myOptions(minChanged, 55, 'min');
                $('vertrektijd_min').setHTML('<option value="">Kies minuten</option>'+options_min);
            }
            else
            {
                myOptions(0, 55, 'min');
                $('vertrektijd_min').setHTML('<option value="">Kies minuten</option>'+options_min);
            }
        });

1 个答案:

答案 0 :(得分:0)

我找到了IE问题的解决方法。但现在我有另一个问题。使用这种新方法,可以添加(注入)新选项,而不是替换旧选项。我似乎需要一种方法来在注入之前删除选项。但不知道我会怎么做。

代码:

var myOptions = function(start, end, field){

    // Remove options from select field here then do inject below ??

    for (var n = start; n <= end; n++){
        if(n < 10){
            new Element('option',{'value':'0'+n}).inject(field).setText('0'+n);
        } else {
            new Element('option',{'value':n}).inject(field).setText(n);
        }
    }
}

编辑:我能够通过循环浏览每个选项并删除它来解决它。

var children = field.getChildren();
    children.each(function(option){
        option.remove();
    });