Ошибка IE с .options.length = 0; или .setProperty («выбрано», «выбрано»)? - PullRequest
0 голосов
/ 23 октября 2009

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 голосов
/ 25 октября 2009

в mootools 1.2, setProperty () устарела. прототип теперь просто element.set (prop, value); - один установщик и один получатель (element.get ()) для всего:)

0 голосов
/ 29 октября 2009

Похоже, у вас просто есть синтаксическая ошибка здесь, где вы получаете свою вторую ошибку в.

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'.

0 голосов
/ 23 октября 2009

В прошлом мы успешно использовали следующий синтаксис, чтобы пометить элемент опции выбора как «выбранный»:

option.selected = true;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...