|
|||||||
Два нажатияОбсуждение темы Два нажатия в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно ... |
![]() |
|
|
Опции темы |
|
|
#1 |
|
|
Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно такое вообще сделать?
|
|
|
|
|
#2 |
|
|
Посмотри как это реализовано на этом форуме!
|
|
|
|
|
#3 |
|
|
Silver, Просто мне это не очень нравится) Я видел это на Invision Power Board, в форме быстрого ответа от IgorekM. Дело в том что я в жаве ни бум бум) Понимаю её только образно. А самому что-то написать...
Ну ладно, обойдусь какнить без этого если никто не ответит... |
|
|
|
|
#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 ]. |
|
|
|
|
#5 | |
|
|
Цитата:
|
|
|
|
|
|
#6 |
|
|
Спасибо) Будем пробовать)
|
|
|
|
|
#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. Если кому интересны мои услуги как программиста, знайте - я их не оказываю, у меня лицензии нет ![]() |
|
|
|
|
#8 |
|
|
KB200, всё равно не то. Я так и не увидел то, чего ожидал.
Этот скрипт даже хуже предыдущего, поскольку порой не знаешь, чего от него ожидать. "надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ]." вот эта фраза и вот эта строчка if (bopenclose > 3 && openclose >0){nt1=''; n=n+2} // не даём вложить (b) в (b) противоречат друг другу. |
|
|
|
|
#9 |
|
|
А зачем вкладывать [b] в [b]?
|
|
|
|
|
#10 | |
|
|
так в том то и дело!
Цитата:
|
|
|
|
![]() |
|
|
| Похожие темы | ||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Кнопка после нажатия | AtisYar | Библиотека | 3 | 29.07.2009 06:43 |
| Как описать на AS действие после нажатия на мувиклип не в корне | artogap | Технологии Flash | 10 | 03.12.2008 19:17 |
|
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|