Добавление текста в <form>форму</form> c java script.

Тема в разделе "Другие языки", создана пользователем Compressor, 28 мар 2009.

Статус темы:
Закрыта.
Модераторы: Цукер
  1. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Есть форма.
    Нужен скрипт добавляющий текст в input c name по нажатию на «ссылки» с разделителем(пробелом).
    Например как тут:

    [​IMG]
     
    nen002 нравится это.
  2. serg_g

    serg_g Создатель

    Регистр.:
    31 окт 2008
    Сообщения:
    35
    Симпатии:
    9
    если правильно понял, то вот пример
    использую jquery

    HTML:
    
      <form action="">
      		<input type=text name=txt id=txt size=50><br>
    		
    		<a href="#" class=jlink>test1</a>, 
    		<a href="#" class=jlink>test2</a>, 
    		<a href="#" class=jlink>test3</a>, 
    		<a href="#" class=jlink>test4</a>, 
    		
      </form>
      
      
    <script type="text/javascript">
    $(document).ready(function() {	
    	$("a.jlink").click(
    		function() {			
    			t=$('input#txt').attr("value")+' '+$(this).text();
    			$('input#txt').attr("value",t);			
    		}			
    	);	
    });
    </script>
     
    Compressor нравится это.
  3. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    serg_g, зачем из-за этого подключать jQuery?
    без него никак?
    более того ваш алгоритм не совсем верен
    HTML:
    
    <html>
    <head>
    
    </head>
    <body>
    <form action="">
    <input type='text' name='txt' id='txt' /><br>
    <div id="jlink">
    <a href="#">test1</a>, 
    <a href="#">test2</a>, 
    <a href="#">test3</a>, 
    <a href="#">test4</a>
    </div>
    <script type="text/javascript">
    function insert_tag(elem,name)
    	{
    	input=document.getElementsByName(name)[0];
    	if(input.value=='')
    		input.value=elem.innerHTML;
    	else
    		input.value+=(', '+elem.innerHTML);
    	}
    jlinks=document.getElementById("jlink").getElementsByTagName('a');
    for(i=0,s=jlinks.length;i< s;i++)
    	jlinks[i].onclick=function(){insert_tag(this,'txt');}
    </script>
    </form>
    </body>
    </html>
    
     
    StrikeOFF и Compressor нравится это.
  4. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    В споре рождается истина.
    Первый вариант не работает =(
    Второй работает великолепно. На отдельной хтмл странице.
    Но если сделать этот скрипт как дополнительный блок для cms. Движок цмс ругается на строку:
    HTML:
    input.value+=(', '+elem.innerHTML);
    Вот так:
    HTML:
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING 

    Можно угадать причину издалека? =)
     
  5. Alternator

    Alternator

    Регистр.:
    23 мар 2009
    Сообщения:
    295
    Симпатии:
    145
    понятия не имею, чем вашей CMS не нравится этот код))))
    особенно, учитывая, что ни одной CMS-ки я не знаю, а если бы знал, вы не указали какую используете.
    попробуйте так:
    Код:
    //input.value+=(', '+elem.innerHTML);
    input.value+=', ';
    input.value+=elem.innerHTML;
    
    либо так:
    Код:
    //input.value+=(', '+elem.innerHTML);
    temp=input.value+', '+elem.innerHTML;
    input.value=temp;
    
    PS код первого ответившего наверно не работает, потому что это код под библиотеку jQuery, которую вы скорее всего не подклчили. И не надо, ради такой простой задачи
     
    Compressor нравится это.
  6. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Решено.
    Просто цмс недолюбливала яваскрипт внутри вывода своих данных. А вот выход скрипта из отдельного файла ей понравился =)
     
  7. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Приветствую… Снова нужна помощь =)

    На этот раз есть два input c name 1 и 2 соответственно.

    И есть ссылка вида <a href=”#”>Text1: Text2</a>, по нажатию на которую нужно пихать текст1 в инпут 1 и теств2 в инпут 2.

    Как-то так… =)

    ЗЫ, С условием, что если в инпутах что-то было... то это бы стиралось...
     
Статус темы:
Закрыта.