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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> замена в строке, не работает в ie 
:(
    Опции темы
Date
Дата 21.11.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.3.2006
Где: Алматы

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



Доброго времени суток!

Столкнулся со следующей проблемой:

Имеется форма на html:
Код

<span id="table">
  <table id=line[1] nomer="[1]" name="My[1]" border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse; border-width: 0" bordercolor="#111111"  height="196">
  <div id="id_photo[1]"/>
  <tr >
    <tr>
      <td width="16" height="17" style="border-style:none; border-width:medium; " bordercolor="#89B3C9">
      <p align="left">
      </td>
      <td width="123" height="17" style="border-left-style:none; border-left-width:medium; border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium" bordercolor="#89B3C9">
      Фото:</td>
      <td width="9" height="17" style="border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium; border-bottom-style:none; border-bottom-width:medium">
      </td>
      <td width="88" height="10" style="border-style: none; border-width: medium">
      Имя:</td>
      <td width="2" height="10" style="border-style: none; border-width: medium">
      </td>
      <td width="295" height="10" style="border-style: none; border-width: medium" colspan="2">
      <input id="name[1]"type="text" name="name[1]" size="46"> <br><font size="3pt"> <a href="#" onclick="return for_all_name('[1]');"> назначить всем </a></font> </td>
    </TR>
    <TR>
      <td width="16" height="51" rowspan="2" style="border-style:none; border-width:medium; " valign="top">
      <p align="center"></td>
      <td width="123" height="140" rowspan="5" style="border-style: none; border-width: medium">
      <div id="foto[1]" /></td>
      <td width="9" height="140" rowspan="5" style="border-style: none; border-width: medium">
      &nbsp;</td>
      <td width="88" height="25" style="border-style: none; border-width: medium">
      Альбом: </td>
      <td width="2" height="25" style="border-style: none; border-width: medium">
      </td>
      <td width="295" height="25" style="border-style: none; border-width: medium" colspan="2">
      <div id="album[1]"/></select></td>
    </TR>
    <TR>
      <td width="88" height="24" style="border-style: none; border-width: medium">
      Метки: </td>
      <td width="2" height="24" style="border-style: none; border-width: medium">
      </td>
      <td width="295" height="24" style="border-style: none; border-width: medium" colspan="2">
      <input type="text" id="mark[1]" name="mark[1]" size="46"><br><a href="#" onclick="return for_all_mark('[1]');"> назначить всем </a></td>
    </TR>
    <tr>
      <td width="16" height="85" rowspan="3" style="border-style:none; border-width:medium; " bordercolor="#89B3C9">
      &nbsp;</td>
      <td width="88" height="24" style="border-style: none; border-width: medium">
      Категория: </td>
      <td width="2" height="24" style="border-style: none; border-width: medium">
      </td>
      <td width="295" height="24" style="border-style: none; border-width: medium" colspan="2">
      <select style="width: 330;" size="1" id="cat[1]" name="cat[1]">
      <? select_category_photo(); ?></td>
    </tr>
    <tr>
      <td width="88" height="26" style="border-style: none; border-width: medium">
      Описание:</td>
      <td width="2" height="59" rowspan="2" style="border-style: none; border-width: medium">
      </td>
      <td width="295" height="59" rowspan="2" style="border-style: none; border-width: medium" colspan="2">
      <p align="left"><textarea rows="3" id="about[1]" name="about[1]" cols="44"></textarea><br><a href="#" onclick="return for_all_about('[1]');"> назначить всем </a></td>
    </tr>
    <tr>
      <td width="88" height="32" style="border-style: none; border-width: medium">&nbsp;</td>
    </tr>
    <tr>
      <td width="16" height="17" style="border-style: none; border-width: medium" bordercolor="#89B3C9">
      <p align="left"></td>
      <td width="222" height="17" colspan="4" style="border-style: none; border-width: medium" bordercolor="#89B3C9">
      </td>
      <td width="151" id="messbar[1]"height="17" style="border-style: none; border-width: medium" bordercolor="#89B3C9">
      <div id="messbar_text[1]" />
      </td>
      <td width="140" height="17" style="border-style: none; border-width: medium" bordercolor="#89B3C9">
      <p align="right"><a href="#" onclick="return del_count(1);"> Отмена </a> <span lang="en-us">| </span><a href="#" onclick="return save_photo_info(1);"> Сохранить </a></td>
    </tr>
    <tr>
      <td width="16" height="6" style="border-left-style:none; border-left-width:medium; border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium" bordercolor="#89B3C9">
      </td>
      <td width="517" height="6" colspan="6" style="border-left-style:none; border-left-width:medium; border-right-style:none; border-right-width:medium; border-top-style:none; border-top-width:medium" bordercolor="#89B3C9">
      </td>
      </tr>
    <tr>
      <td width="16" height="4" style="border-left-style:none; border-left-width:medium; border-right-style:none; border-right-width:medium; border-top-style:solid; border-top-width:1; border-bottom-style:none; border-bottom-width:medium" bordercolor="#89B3C9">
      </td>
      <td width="517" height="4" colspan="6" style="border-left-style:none; border-left-width:medium; border-right-style:none; border-right-width:medium; border-top-style:solid; border-top-width:1; border-bottom-style:none; border-bottom-width:medium" bordercolor="#89B3C9">
      </td>
      </tr>
      </tr>
  </table>
 
  </span>
  </p>
   </p>          
   </label>
                     <iframe id="upload_target" name="upload_target" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
                 </form>
             </div>
         </div>


И JS скрипт:
Код

function addline(id_photo_tmp,file_tmp, album_tmp) // если загрузка фотографии прошла успешно 
//то создаем еще одну линию
{
    c++; // увеличиваем счётчик строк
    if(c==1){ //если это перваая загрузка то только "открываем" первую линию и меняем все переменные 
    document.getElementById('foto['+c+']').innerHTML='<img src=' + file_tmp + '>'; //пишем ссылку на вновь заргруженную фоторафию
    document.getElementById('album['+c+']').innerHTML=album_tmp; //пишем название альбома в который загрузили фото
    document.getElementById('line[1]').style.visibility = 'visible'; // "открываем" линию 
    document.getElementById('id_photo['+c+']').value=id_photo_tmp; //идентификатор фоторафии
    }
    else{ // если более второй загрузки то копируем линию 
    s=document.getElementById('table').innerHTML; // получаем HTML-код таблицы
    s=s.replace(/[\r\n]/g,''); // вырезаем все символы перевода строк
    re=/(.*)(<table id=.*>)(<\/table>)/gi; 
                // это регулярное выражение позволяет выделить последнюю строку таблицы
    s1=s.replace(re,'$2'); // получаем HTML-код последней строки таблицы
    s2=s1.replace(/\[\d+\]/gi,'['+c+']'); // заменяем все цифры к квадратных скобках
                // на номер новой строки
    s3=s2.replace(/(del_count\()(\d+\))/gi,'$1'+c+')');
    s3=s3.replace(/(save_photo_info\()(\d+\))/gi,'$1'+c+')');
                // заменяем аргумент функции rmline на номер новой строки
    s=s.replace(re,'$1$2'+s3+'$3');

                // создаём HTML-код с добавленным кодом новой строки 
                // возвращаем результат на место исходной таблицы
    document.getElementById('table').innerHTML=s; 
    document.getElementById('about[1]').value=s;
    document.getElementById('foto['+c+']').innerHTML='<img src=' + file_tmp + '>'; //передаем путь вновь загруженно фотографии
    document.getElementById('album['+c+']').innerHTML=album_tmp; //пишем имя альбома в который загруженно фото
    document.getElementById('id_photo['+c+']').value=id_photo_tmp; //присваеваем ID для фото
    document.getElementById('messbar['+c+']').style.background='#D4E4F2'; //ставим цвет строки сообщения таким же как цвет фона сайта(скрываем) т.к. оно сохроняяется при копировании
    messbar_text=document.getElementById('messbar_text['+c+']').innerHTML=''; //стираем надписи в строке сообщения
    }
    return false; // чтобы не происходил переход по ссылке
}


Задача скрипта скопировать форму и заменить цифры взятые в квадратные скобки [x], (и записанные в функциях del_count(x); return save_photo_info(x);), на следующие значении. 
(x+1)

В oper’е все работает нормально, но вот в IE8 дублирование строки не происходит.

Подскажите плз в чем может быть проблема. 

Заранее благодарю.   

--------------------
Люди не будьте свиньями, Бросайте мусор в урны.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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