JavaScrip-та не функционира правилно

  • Автор Автор Foxy
  • Начална дата Начална дата

Foxy

Registered
Здравейте! Имам един js за bbcode, който служи за слагане на самите тагове в textarea или инпут и като си селектирал нещо да го обгражда с ббкода, който си посочил. Проблема е следния - ако пишеш и по време на писането си слагаш ббкода няма проблем, но ако накрая като си свършил почнеш да слагаш става лого - дубликира част от текста. Ето 2 скриина да видите за какво става на въпрос:
bb1.jpg

bb2.jpg


Как да го оправя - ето js:
Код:
<script language="javascript" type="text/javascript">
function bbcode(open_tag, close_tag, id) {
   var obj = document.getElementById(id);
   var spacer;
   if(obj.value.length > 0) {
      spacer = " ";
   } else {
      spacer = "";
   }
   var begining_text = obj.value.substr(0, obj.selectionStart);
   var selected_text = obj.value.substr(obj.selectionStart, obj.selectionEnd);
   var end_text = obj.value.substr(obj.selectionEnd, obj.value.length);

   var caret_position = obj.selectionStart;
   var text_to_caret = obj.value.substr(0, caret_position);
   var text_after_caret = obj.value.substr(caret_position, obj.value.length);

   // If there is a selection
   if(obj.selectionStart != obj.selectionEnd) {
      obj.value = begining_text + open_tag + selected_text + close_tag + end_text
   } else {
   // If there is not a selection
      obj.value = text_to_caret + open_tag + close_tag + text_after_caret
   }
   //obj.value = obj.value + spacer + text;

}
</script>
 

Back
Горе