将textarea的值添加到已填充的输入中

时间:2015-02-13 15:44:32

标签: javascript jquery html forms

我有一个输入,它将从cms和另一个textarea预先填充:jsFiddle

jQuery('#description_field').on('change', function () {
   var val=jQuery("#description").val();
   jQuery("#description").val(val + ' ' +jQuery( "#description_field" ).val());
});

-

<form>
   <textarea id="description_field" name="description_field"></textarea>
   <input type="hidden" id="description" name="description" value="{{ cms.tag }} <!-- Text of the textarea -->">
</form>

这实际上已经有效但是当用户想要再次更改textarea中的文本时,更改会添加到旧input文本的末尾,这不是很好。< / p>

如何以某种方式更改代码,textarea文本总是1:1?

谢谢

4 个答案:

答案 0 :(得分:1)

您可以更改:

var val=jQuery("#description").val();

为:

var val = jQuery("#description").attr('value');

<强> jsFiddle example

答案 1 :(得分:0)

在附加之前存储字段值&#34;更改&#34;事件:

var val=jQuery("#description").val();
jQuery('#description_field').on('change', function () {
   jQuery("#description").val(val + ' ' +jQuery( "#description_field" ).val());
});

FIDDLE

答案 2 :(得分:0)

以下是一种方法:

&#13;
&#13;
//store the initial value from input
var initialValue = $("#description").val();

$('#description_field').on('input', function () {
    $("#description").val(initialValue + ' ' + $(this).val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<form class="form-horizontal" id="charge-form" method="post" action="" accept-charset="UTF-8">
    <textarea class="form-control" rows="3" id="description_field" name="description_field"></textarea>
    <hr>
    <input id="description" name="description" value="XYZ ">
</form>
&#13;
&#13;
&#13;

答案 3 :(得分:-1)

如果你想要1:1的文字,为什么不只是:(在下面运行)

&#13;
&#13;
var $textarea = $('#description_field'),
    $input = $("#description");

$textarea.on('keyup', function () {
	$input.val($textarea.val());
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form class="form-horizontal" id="charge-form" method="post" action="" accept-charset="UTF-8">
      
          <textarea class="form-control" rows="3" id="description_field" name="description_field"></textarea>
    <hr>
      <input id="description" name="description" value="XYZ ">
</form>
&#13;
&#13;
&#13;