Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Регулярное выражение, РВ вызывает прекращение работы цикла 
:(
    Опции темы
redlinesoft
Дата 4.4.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2005

Репутация: нет
Всего: нет



Приветствую!

Пишу скрипт, который должен удалять элементы списка select, если текст внутри данного элемента не совпадает с паттерном рег.выражения. Проблема в том, что метод search каким-то образом прерывает работу цикла, проходящего по всем элементам option.

Вот код скрипта:

Код

function sorter(compon){
    this.cats = new Array();
    this.cats.push(document.forms[0].elements["cat_0"]);
    this.cats.push(document.forms[0].elements["cat_1"]);
    this.cats.push(document.forms[0].elements["cat_2"]);
    this.cats.push(document.forms[0].elements["cat_3"]);
    this.master=document.forms[0].elements["hotel"];
    this.compon=compon;
    this.initializeBehavior();
}

sorter.prototype={
    initializeBehavior: function(){
        var oThis = this;
        for(i=0;i<this.cats.length;i++)
            this.cats[i].onclick = function(){oThis.resort();}
    },
    
    resort: function(){
        this.compon.fillSlave();
        vals = new Array();
        for(i=0;i<this.cats.length;i++)
            if(this.cats[i].checked==true)
                vals.push(this.cats[i].value);
        if(vals.length>0)
            for(i=0;i<this.master.length;i++){
                alert(i);
                flag=true;
                tmp=this.master.options[i].text;
                for(j=0;j<vals.length;j++){
                    var re = new RegExp(".*\\("+vals[j]+"\\*\\)");
                    alert(re);
                        if(tmp.search(re)!=-1){
                            alert("yo!");
                            flag=false;
                        }
                }
                if(flag==true)
                    this.master.options[i]=null;
            }
        
    }
}


Помогите, плз, разобраться с проблемой.
PM MAIL   Вверх
Sardar
Дата 4.4.2007, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



Дай ссылку на страницу, проще отлаживать.

На вскидку, в vals[i] может лежать какая нибудь лажа, регом не являющаяся. Также не понятно зачем вообще использовать реги, проверяешь ты ведь только суффиксы. В циклах при определении i пиши var i, иначе i будет глобальной, весьма интересные "глюки" для себя откроешь.


P.S. "китайский код" на подобие flag==true никогда не пиши, глупо.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
redlinesoft
Дата 5.4.2007, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 4.8.2005

Репутация: нет
Всего: нет



Sardar, пасиба!

Но проблему я уже решил, правда по-другому...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.