ďťż

[html/js] <input type=button> z onclickiem ;-)

       

Podstrony


telcocafe

Witam :)
Mam formularz i w nim textareę nazwaną xxx i do tego taki oto kodzik buttona (znajduje się on w tym samym formularzu):
<input value="<b>" type=button onclick="this.form.xxx.value+='<b>'">
Ma on za zadanie wkleić do pola tekstowego xxx treść <b>. A więc jak nie trudno zgadnąć, chodzi o wstawienie znacznika.

Przejdę do rzeczy: jak zrobić, że jak kliknę i już wstawię <b>, to tresc przycisku zmieni się z <b> na </b>? I jak kliknę ponownie to wstawi text </b>, zmieniając jednocześnie value na <b> :blink: <_<
Dodam może, że podobna gunkcja istnieje na forum 4programmers B)

Sorry, za to niejasne tłumaczenie (chyba) :> ^_^
Użytkownik virus_jc edytował ten post 21 listopad 2005, 17:34


if( this.value == '<b>' ) { this.value = '</b>'; this.form.xxx.value+='<b>'; } else { this.value = '<b>'; this.form.xxx.value+='</b>'; }

Jeszcze ja się wtrącę z pytaniem :)
Akurat jestem w trakcie pewnego projektu i drobny edytor bbcode mi się przyda. Po wypowiedzi Ferrari doszedłem do tego:function AddBBcode(formularz, co) {  if( formularz.value == '['+co+']')  {    formularz.value = '[/'+co+']';    formularz.form.przepis.value += '['+co+']';  }  else  {    formularz.value = '['+co+']';    formularz.form.przepis.value += '[/'+co+']';  }  formularz.form.przepis.focus(); }
i wywołanie<input type="button" value="[b]" onclick="javascript:AddBBcode(this, 'b')" style="width: 40px" />
Chcę zmienić to tak żeby po kliknięci [ b] w textarea pojawiało się [ b][ /b] i kursor między nimi. Z zmianą kodu nie będzie problemu, ale nie mogę się nigdzie doszukać:

Jak ustawić kursor o 4 znaki wcześniej niż da mi to focus()?.

PS. żeby nie było, nieznam js tylko opieram się o logikę i inne języki :) więc moje pytanie może być dennie proste.
Użytkownik reVis edytował ten post 22 listopad 2005, 21:51
Chyba nie jest... Tzn może jest, dla jakiegos weterana js ^_^ Ale z tego co widze po innych DOBRYCH serwisach, z taka opcją sie nie spotkałem :>



W takim razie zostanie tak jak jest i napiszę jeszcze jakąś funkcję zamykającą otwarte tagi. Jednak ciągle jestem otwarty na propozycje :)

F3Site, fragment pliku inc/js.js:
function BBC(t,x,y) { f=document.getElementById(t); if((typeof f.selectionstart)!='undefined') {  s=f.selectionstart;  k=f.selectionend;  ost=f.scrollTop;  a1=(f.value).substring(0,s);  a2=(f.value).substring(s,k);  a3=(f.value).substring(k,f.textLength);  f.value=a1+x+a2+y+a3;  f.selectionend=(a1+x+a2).length;  f.scrollTop=ost;  f.focus(); } else { f.value+=x+y; } }
Ten kod jednak nie zmienia [ b ] na [ /b ], ale posiada przydatne (np. wstawianie w zaznaczenie) i niezbędne (np. powrót do tej samej pozycji scroll'a pola textarea) funkcje.
Użytkownik Ferrari edytował ten post 22 listopad 2005, 23:09
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.