IE错误.options.length = 0;或.setProperty('selected','selected')?

时间:2009-10-23 17:34:10

标签: php javascript mootools

当我使用新选项更新选择框并选择所选选项时,Internet Explorer 8和7失败并显示错误。在其他浏览器中,这可以正常工作且没有错误我使用Mootools 1.2.3。

<?php
    $getdestiny=$_GET['dest'];
    $getcountry=$_GET['countr'];

    print "<script type='text/javascript'>
        window.addEvent('domready', function() {

       var countrh=$getcountry;
       var desth=$getdestiny;

       if (countrh==4){
             $('destination').options.length=0; //error fails here   
             var opt0 = $('destination').options[0] = new Option('Сhoose Destination',0);
             var opt1 = $('destination').options[1] = new Option('London-Aberdeen','1');

              var len = $('destination').options.length;
              if (desth < len){
             opt$getdestiny.setProperty('selected','selected'); //or here

        else {
        //do nothing
        }
    });
    </script>"

可能是因为我使用双重分配vars opt *或者它可以是什么?请告诉我。

3 个答案:

答案 0 :(得分:0)

过去,我们已成功使用以下语法将select选项元素标记为“selected”:

option.selected = true;

答案 1 :(得分:0)

在mootools 1.2中,setProperty()已被弃用。原型现在只是element.set(prop,value); - 任何东西的一个setter和一个getter(element.get()):)

答案 2 :(得分:0)

看起来你在这里遇到了第二个错误的语法错误。

if (desth < len){
   opt$getdestiny.setProperty('selected','selected'); //or here
else {
  //do nothing
}

缺少if语句第一部分的结束}。应该是这样的:

if (desth &lt; len){
   opt$getdestiny.setProperty('selected','selected'); //or here
}else {
  //do nothing
}

<强>附录:

好的问题是你试图在一个没有包含在MooTools中的元素上使用MooTools函数。您可以通过将其包装在$()函数中来解决此问题:

$(opt$getdestiny).set('selected','selected');

我通常也只设置selected = true,所以你也可以试试。确保使用true,而不是字符串'true'。