Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   подскажите новичку пожалуйста с вставкой в форму (https://javascript.ru/forum/dom-window/5743-podskazhite-novichku-pozhalujjsta-s-vstavkojj-v-formu.html)

marlic 02.11.2009 09:32

подскажите новичку пожалуйста с вставкой в форму
 
здравствуйте, помогите плиз.
есть форма (типа WYSIWYG) как на этом форуме вставляются смайлики справа, так же нужно вставлять коды html для удобства редактирования. как это простенько реализовать?
код формы:
<a href="admin.php">админка</a>
</div><form method="post" action="admin.php">
    Имя:<br/>
    <input type="text" name="name" maxlength="30"><br/>
    Коментарии:<br/>
     <select name="koment">
     <option value="1">da</option>
     <option value="0">net</option>
     </select><br/>
     Голосование:<br/>
     <select name="gol"><br/>
     <option value="1">da</option>
     <option value="0">net</option>
     </select><br/>
      Текст:<br/>
    <textarea name="body" cols="30" rows="5"></textarea><br/>
    <input type=submit name=snd value="Добавить">
    </form>

alexKniaz 02.11.2009 09:50

А скрипт гдже?

marlic 02.11.2009 09:59

<script language="javascript" type="text/javascript">
function ShowOrHide(d1) {
	  if (d1 != '') DoDiv(d1);
}

function DoDiv(id) {
	  var item = null;
	  if (document.getElementById) {
		item = document.getElementById(id);
	  } else if (document.all){
		item = document.all[id];
	  } else if (document.layers){
		item = document.layers[id];
	  }
	  if (!item) {
	  }
	  else if (item.style) {
		if (item.style.display == "none"){ item.style.display = ""; }
		else {item.style.display = "none"; }
	  }else{ item.visibility = "show"; }
}

function code(text) {
        var txtarea = document.post.body;
        text = '' + text + '';
        if (txtarea.createTextRange && txtarea.caretPos) {
                var caretPos = txtarea.caretPos;
                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
                txtarea.focus();
        } else {
                txtarea.value  += text;
                txtarea.focus();
        }
}

</script>

ниже коды котор нужно будет вставить при нажатии
<a href="javascript:ShowOrHide("1")">Вставка</a>
<div id="1" style="display:none;">
<a href="javascript:code("<div class=&quot;menu1&quot;><img src=&quot;../loads/ext/dir.png&quot; alt=&quot;&quot; /> <strong>  </strong></div> ")">зеленые ссылки</a> 
<a href="javascript:code("<div class=&quot;b&quot;> </div>")">синее главное</a>

marlic 02.11.2009 10:06

проблема именно в том, что када на странице оставляю только 1 форму для текста, то в нее вставляет, а када две формы, (1-для названия, 2 -собсвено сам текст) то ничего не происходит, просмореть все это хозяйство вот тут http://vip.bodr.in/bl/admin.php?add=1&act=3&pass=111

Gozar 02.11.2009 13:48

Думаю что проблема здесь:
var txtarea = document.post.body;

Во первых, так давно уже не пишут, а пишут например так
var txtarea = document.getElementById(id);

соответственно textarea:
<textarea id="body-txt" cols="30" rows="5"></textarea>


Разные textarea, разные id, самый простой способ сказать code куда надо вставлять это :)
code('<div class=&quot;b&quot;> </div>','body-txt')


Соответственно:
function code(text,id) {


Кстати смысл делать вот это:
if (document.getElementById) {
        item = document.getElementById(id);
      } else if (document.all){
        item = document.all[id];
      } else if (document.layers){
        item = document.layers[id];
      }
? ie прекрасно понимает: document.getElementById(id), зачем проверять на совместимость там где совместимость есть?


Часовой пояс GMT +3, время: 03:35.