Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   из Select в Textarea? (https://javascript.ru/forum/jquery/29589-iz-select-v-textarea.html)

Kintim 04.07.2012 12:26

из Select в Textarea?
 
Всем привет.
У меня такой вопрос, можно ли с помощью js передать в textarea переменную, так, чтобы она не зависела от введенного текста.
Вот пример кода:
$(document).ready(function(){

    $("#brselect").change(function () {
          var $str = "";
          $("#brselect option:selected").each(function () {
                $str += $(this).text() + " ";
              });
          $("#txtpastebr").text($str);
		  
		  if ($("#txtpastebr").text()!="")
		  {
			$("#txtpastebr").val($str + $("#txtpastebr").val());
		  }
        })
        .change();

  });

Но вот только он постоянно добавляет значение полученное из селекта к тому что написано, а нужно чтобы значение менялось в зависимости от того, что выбрал в select.

Уважаемы, подскажите пожалуйста.:help:

Skipp 04.07.2012 12:39

Мде, совсем обленились:(

$(document).ready(function(){

    $("#brselect").change(function () {
          var $str = "";
          $("#brselect option:selected").each(function () {
                $str += $(this).text() + " ";
              });
          $("#txtpastebr").val($str);
        })
        .change();

  });

Deff 04.07.2012 12:43

Kintim,
Пару примеров строк в textarea
до смены переменной и после

Kintim 04.07.2012 13:07

Это понятно, что меняет.. А если Юзер уже набил целое произведение?!
Не удобно как-то заставлять его заново все строчить.. ((

Deff 04.07.2012 13:10

Цитата:

Сообщение от Deff
Пару примеров строк в textarea
до смены переменной и после

. .

Kintim 04.07.2012 13:16

сначала было пусто, после выбора в селекте соответственно:
- General
- Mitsubishi
- Clint
Отрабатывает. А вот если в текстареа уже есть текст то:
- Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
- General

Deff 04.07.2012 13:18

Kintim,
Повторный Выбор селект - рассматриваем ? если да => Могут ли быть подобные слова уже в тексте ?

Kintim 04.07.2012 13:26

Человек может ошибиться с выбором и после набора текста понять, что ему нужно другое. Тогда он заново пользуется селектом.
И да, в тексте он может упоминать фразы, которые есть в селекте.

Deff 04.07.2012 16:06

Чо нидь типо так:
<style type="text/css">#txtpastebr{width: 100%;white-space:nowrap;}</style>
<script type="text/javascript" src="http://yandex.st/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var First=true;
var Sel = $("#brselect");
var Tarea =$("#txtpastebr");
var opt='Ваш выбор,- General,- Mitsubishi,- Clint';
opt = opt.split(',');

 Sel.change(function () {
    var str=$(this).find('option:selected').val();
    var txt=Tarea.val(),a=String.fromCharCode(173); //160
    if(str!=''||str!=opt[0]){
	if(First){First=false;Tarea.val(txt+' '+a+str+a+' ');
	} else {
	  var pattern = a+'('+opt[1]+'|'+opt[2]+'|'+opt[3]+')'+a;
	  var regexp  = new RegExp(pattern,"ig");
	  var txt2=txt.replace(regexp,a+str+a);
	  if(txt2!=txt){Tarea.val(txt2)}else{Tarea.val(txt+' '+a+str+a+' ')}
        }
    }
 });


});
</script>
<form>
  <select id="brselect" name="cat">
     <option selected disable>Ваш выбор</option>
     <option value="- General">- General</option>
     <option value="- Mitsubishi">- Mitsubishi</option>
     <option value="- Clint">- Clint</option>
  </select><br>

  <textarea id="txtpastebr" name="req_message" rows="14"></textarea> 
</form>

Kintim 04.07.2012 16:58

Спасибо большое.. )
Однако, если выбрать не один и тот же option, то он встанет в поле textarea, получится так:
12312 1321 3854 51 84 18 18181 32 ­General­ ­Mitsubishi­ ­Clint­ ­MDV­

поэтому, наверное правильнее будет оставить так:
<script>
  $(document).ready(function(){

    $("#brselect").change(function () {
          var $str = "";
          $("#brselect option:selected").each(function () {
                $str += $(this).text() + " ";
              });
          $("#txtpastebr").text($str);
		  
		  if ($("#txtpastebr").text()!="")
		  {
			$("#txtpastebr").val($str + $("#txtpastebr").val());
		  }
        })
        .change();

  });
</script>


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