Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Два нажатия

Обсуждение темы Два нажатия в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно ...


Закрытая тема
 
Опции темы
Старый 11.05.2005, 20:13   #1
Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно такое вообще сделать?
 
Старый 11.05.2005, 20:13
Ссылки
Старый 12.05.2005, 07:09   #2
Посмотри как это реализовано на этом форуме!
 
Старый 12.05.2005, 15:26   #3
Silver, Просто мне это не очень нравится) Я видел это на Invision Power Board, в форме быстрого ответа от IgorekM. Дело в том что я в жаве ни бум бум) Понимаю её только образно. А самому что-то написать...
Ну ладно, обойдусь какнить без этого если никто не ответит...
 
Старый 29.05.2005, 00:30   #4
Вариант номер раз (очень просто) - делаем триггер:

var zzz=0;
function addBandB(){
if (zzz ==0){
zzz=1;
document.formname.textareaname.value=document.form name.textareaname.value+'[ b ]';
}else{
zzz=0;
document.formname.textareaname.value=document.form name.textareaname.value+'[ /b ]';
}

}



Вот теперь при нажатии 1 будет вставлено [b], при нажатии 2 вставлено [ /b ], при нажатии 3, снова вставлено [ b ] и так далее.
Пояснять алгоритм не буду, если знаешь что делает IF то сам поймёш.
Это правда самый простой вариант, по хорошему надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ].
 
Старый 29.05.2005, 00:56   #5
Цитата:
надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ].
Это чушь. Ты подумай: есть ОДНА кнопка. Как программе определить, что ты хочешь сделать, нажимая на неё: закрыть уже открытый тэг, или открыть ещё один? Одной кнопкой это невозможно, так что тут лучше обойтись этим вот твоим простым способом.
 
Старый 30.05.2005, 14:11   #6
Спасибо) Будем пробовать)
 
Старый 01.06.2005, 06:31   #7
Уважаемый Мастер seka,

Вот вы по ошибке написали:
------------------------------------
Это чушь. Ты подумай: есть ОДНА кнопка. Как программе определить, что ты хочешь сделать, нажимая на неё: закрыть уже открытый тэг, или открыть ещё один? Одной кнопкой это невозможно, так что тут лучше обойтись этим вот твоим простым способом.
------------------------------------

Задавать вопрос о том, как Вас, уважаемый Мастер seka земля носит, не стану, пусть это сделают те, кто стал вашими клиентами (у вас в подписи вроде какая-то студия фигурирует)...

Красноречивее за меня скажет исходник обработчика нажатия на кнопку, который сам знает - что надо делать ОТКРЫВАТЬ ТЕГ или ЗАКРЫВАТЬ (и только представьте, я не применил никакой магии и эвристического анализа!):

Код:
<HTML><HEAD>
<script language=JavaScript><!--
function nepowadno_chto_by_bylo_goworit_bred(){
var test_text=document.test.info.value;
var test_text_out='';

var openclose=0;
var nopenclose=0;
var bopenclose=0;
for (n=0; n < test_text.length; n++){
nt1=test_text.substring(n, n+1);
if (nt1 == '('){
if ((test_text.substring(n+1, n+2) == 'B' || test_text.substring(n+1, n+2) =='b') && test_text.substring(n+2, n+3) == ')'){
if (bopenclose > 3 && openclose >0){nt1=''; n=n+2} // не даём вложить (b) в (b)
nopenclose=-1;
openclose=1;
}else{
if (test_text.substring(n+1, n+2) == '/' && (test_text.substring(n+2, n+3) == 'B' || test_text.substring(n+2, n+3) =='b') && test_text.substring(n+3, n+4) == ')'){
if (nopenclose > 2 && openclose < 1){nt1=''; n=n+3} // не даём вписать (/b) ранее (b)
bopenclose=-1;
openclose=0;
}
}} // if (nt1 == '(')
nopenclose++;
bopenclose++;
test_text_out=test_text_out+nt1;
} // for (n=0; n < test_text.length; n++)

// закрываем (/b) если на выходе не всё закрыто или открываем новое, если всё закрыто
// причём учитываем, что если в конце у нас открыто но ничего не написано, то убрать открытие, а если написано, то закрыть
if (openclose > 0){if (nopenclose > 2){test_text_out=test_text_out+'(/b)';}else{test_text_out=test_text_out.substring(0, test_text_out.length-3);}}else{if (bopenclose > 3){test_text_out=test_text_out+'(b)';}}

document.test.info.value=test_text_out;
}
//--></script>

</head>
<BODY>

<form name=test onSubmit="nepowadno_chto_by_bylo_goworit_bred(); return false;">
<textarea name=info rows=5 cols=50>наша (b)маша (b)громко(/b) плачет</textarea>
<input type=submit value="Доказать">
</form>

</body></html>
не забудьте потом заменить () скобки на [], иначе бы я в этот форум код не смог вписать.



Не претендую на особую элегантность кода, писал в реалтайме, на скоряк, даже не проверял, но должно работать.


Ребята, прекращайте юзать модули, готовые процедуры, гонять друг друга скомуниздить чужой код... ЭТО СУШИТ МОЗГИ!
Пишите всё сами, с нуля... Пусть это дольще.
В программировании нет ничего невозможного.


P.S. Если здесь открыто рекламят студии в подпиях, то порекламлю что ни будь и я: Иллюстрированный каталог сайтов
P.P.S. Требую что бы меня тоже называли мастер! Чем я хуже йоды?
P.P.P.S. Если кому интересны мои услуги как программиста, знайте - я их не оказываю, у меня лицензии нет
 
Старый 01.06.2005, 13:13   #8
KB200, всё равно не то. Я так и не увидел то, чего ожидал.

Этот скрипт даже хуже предыдущего, поскольку порой не знаешь, чего от него ожидать.

"надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ]."

вот эта фраза и вот эта строчка

if (bopenclose > 3 && openclose >0){nt1=''; n=n+2} // не даём вложить (b) в (b)

противоречат друг другу.
 
Старый 01.06.2005, 14:41   #9
А зачем вкладывать [b] в [b]?
 
Старый 01.06.2005, 16:31   #10
так в том то и дело!

Цитата:
по хорошему надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ].
Однако, судя по этому высказыванию, такой вариант всё же возможен, когда, например, "фыавыва[b]sfad[b]asdf........"
 
Старый 01.06.2005, 16:31
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кнопка после нажатия AtisYar Библиотека 3 29.07.2009 06:43
Как описать на AS действие после нажатия на мувиклип не в корне artogap Технологии Flash 10 03.12.2008 19:17


Текущее время: 04:59. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум