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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Номер строки в textarea, Номер строки в textarea 
:(
    Опции темы
Гость_Алексей
Дата 4.9.2004, 20:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Здравствуйте все!

Нужно постоянно выводить номер строки в элементе textarea.
Каким образом можно получить об этом информацию?
Заранее спасибо.

  Вверх
Nobody
Дата 4.9.2004, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



например, считать яваскриптом содержимое этой textarea и посчитать количество символов перевода строки, которые там есть ДО нужной строки.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
Sardar
Дата 4.9.2004, 22:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



Если не менять шрифт, то аттрибуты cols и rows задают количество строк и количество символов в строке. Отсюда меряй:
Код
textaera.value.length/textarea.getAttribute("cols")

Количествно строк в тексте.

В Мозилле узнать где курсор можно через selection(Start|End) отсюда узнаешь на какой он строке.

Для ИЕ можно сообразить что то подобное:
Код
var sel=document.selection.createRange(); //возьмем TextRange под курсором
sel.moveStart('character', -textarea.value.length); //отведем начало на первый символ
alert(sel.text.length); // возьмем длинну текста, наше смещение в символах



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


Unregistered











Вообщем для того чтобы получать номер строки и позицию в строке в элементе textarea нужен следующий код:
Код

<HTML>
<HEAD>
<script>
function  count() {
var sel=document.selection.createRange();
sel.moveStart('character', -document.aForm.aTextArea.value.length);
var simbol_num=sel.text.length;
var ch=document.aForm.aTextArea.value;
ch_len=ch.length;
var string_num=1;
var string_pos=-1;
for(i=0;i<=ch_len;i++)
 {    
   comp = ch.charCodeAt(i);
   comp1 = ch.charCodeAt(i-1);
   if(comp=="10"&&comp1=="13") { string_num++;}
   if(comp=="13")              { string_pos=i+1; }
   if(i == simbol_num) break;
 }
if(comp==13) document.aForm.st.value=string_num+1;else document.aForm.st.value=string_num;
if(comp==13) document.aForm.sim.value=1; else document.aForm.sim.value=simbol_num-string_pos;
str_pos=-1;
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="aForm">
<TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONKEYDOWN="insertAtCaret();" ONSELECT="count();" ONCLICK="count();" ONKEYUP="count();"></TEXTAREA>
<BR>
строка
<input readonly type="text" name="st" size=20>столбец
<input readonly type="text" name="sim" size=20>
</FORM>
</BODY>
</HTML>

  Вверх
Sardar
Дата 5.9.2004, 23:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


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

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



yony код будет работать только в ИЕ, как в Мозилле узнать позицию каретки(селекции) я писал выше.
Поиск цепочек \r, \rn, \n даст точный результат, но будет притормаживать на длиных текстах и убитых машинах.
Если используешь monospace(стандартный для textarea) шрифт, то перебор не нужен, различныe шрифты, то ищи перевод строки регами.




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


Новичок



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

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



а не подскажите как сделать так, что бы в textarea можно было в одну строку ввести не более, скажем 30 символов и чтобы после этих 30 символов шел переход на след. строку, т.к. без такого переноса в базу заносится все одной строкой.
PM MAIL   Вверх
InfMag
Дата 18.9.2011, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



***


Профиль
Группа: Завсегдатай
Сообщений: 1037
Регистрация: 21.11.2004

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



Учтите что у вас ch_len, comp, comp1, str_pos по области видимости глобальные.
str_pos я вообще не пойму откуда взялся и какую роль в коде играет.
Для обрезания строки более 30-и символов, где ch - переменная с содержимым:
Код

ch = ch.replace(/([^\n]{30})([^\n]{1})/gi, '$1\n$2');

Вроде должно работать.

Это сообщение отредактировал(а) InfMag - 18.9.2011, 10:33
PM   Вверх
Siscipsak
Дата 1.9.2022, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
impaphy
Дата 5.9.2022, 02:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
fedGlasse
Дата 7.9.2022, 04:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
elolcange
Дата 10.9.2022, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
DrawSwade
Дата 13.9.2022, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
boaxike
Дата 16.9.2022, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
objelve
Дата 7.10.2022, 05:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

PM MAIL   Вверх
aqually
Дата 12.10.2022, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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




Модератор: Сообщение скрыто.

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


 




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


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

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