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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Убрать лишние строки их textarea 
:(
    Опции темы
MakNik
Дата 4.9.2008, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Есть textarea в котором вводится текст формы:
Код

<textarea name=body id=body cols=100 rows=15 class=p maxLength=50000>
&lt;form action='' method=post&gt;
&lt;input type=hidden name='v1' value='[1]'&gt;
&lt;input type=hidden name='v2' value='[22]'&gt;
&lt;input type=hidden name='' value='[20]'&gt;

&lt;input type=hidden name='' value='[22]'&gt;
&lt;input type=hidden name='a5' value='[555]'&gt;
&lt;input type=hidden name='' value='[00]'&gt;

&lt;input type=hidden name='' value='[999]'&gt;

&lt;input type=submit value='Отправить' size=50 class=p&gt;
&lt;/form&gt;
</textarea>

Необходимо после завершения всех правок нажатием на кнопку (без перечитывания страницы) убрать те строки, в которых name=''.
Подскажите, пожалуйста, как такое реализовать?
PM   Вверх
InvalidProperty
Дата 4.9.2008, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



Код

<html>
<head>

<script language="javascript">
<!--
function do_remove()
{
 var arr = document.getElementById('body').innerHTML.split("\n");
 var s = "";
 for(i = 0; i < arr.length; i++)
  if(arr[i].indexOf(" name='' ") == -1)
   s += arr[i] + "\n";

 document.getElementById("body1").innerHTML = s;
}
-->
</script>

</head>
<body>

<textarea name=body id=body cols=100 rows=15 class=p maxLength=50000>
&lt;form action='' method=post&gt;
&lt;input type=hidden name='v1' value='[1]'&gt;
&lt;input type=hidden name='v2' value='[22]'&gt;
&lt;input type=hidden name='' value='[20]'&gt;
&lt;input type=hidden name='' value='[22]'&gt;
&lt;input type=hidden name='a5' value='[555]'&gt;
&lt;input type=hidden name='' value='[00]'&gt;
&lt;input type=hidden name='' value='[999]'&gt;
&lt;input type=submit value='Отправить' size=50 class=p&gt;
&lt;/form&gt;
</textarea>

<textarea name="body1" id="body1" cols=100 rows=15 class=p maxLength=50000></textarea>

<input type="button" onclick="do_remove()" value="remove" />

</body>
</html>


Специально новый textarea создал, чтобы ты видел, каков результат. В конце текста добавляется дополнительный перевод строки, если в конечном тексте содержится хотя бы одна строка. Этот перевод, по желанию, можно убрать smile


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
MakNik
Дата 4.9.2008, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Спасибо, работает!
только вот с переводом строки что-то не получается - все пишет в одну строку... В чем может быть дело?
PM   Вверх
InvalidProperty
Дата 4.9.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

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



Действительно, проверил в IE, не подставляет символа перевода каретки. Когда скрипт писал, только под ffx тестил. В общем, результирующий код будет такой:

Код

function do_remove()
{
 var arr = document.getElementById('body').innerHTML.split("\n");
 var s = "";

 for(i = 0; i < arr.length; i++)
  if(arr[i].indexOf(" name='' ") == -1)
   s += arr[i] + "\n";

 s = s.replace(/&gt;/g, ">");
 s = s.replace(/&lt;/g, "<");
 document.getElementById("body1").value = s;
}


, где предпоследние две строчки делают то же, что и html_entity_decode() в PHP. Т.е., если тебе нужно еще какие-то сущности декодировать, то, соответственно, их преобразования придется описать. Кардинальное отличие этой функции от описанной ниже в том, что результат записывается в textarea.value, а не в textarea.innerHTML


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




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


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

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