问问题
709 次
4 回答
1
真的又快又脏:
$("input[type='text'], textarea").keyup(function() {
$("textarea").val('')
var tev = '';
$("input[type='text']").each(function() {
tev += $(this).val() + '\n';
});
$("textarea").val(tev);
});
于 2013-10-30T17:17:34.780 回答
0
像这样:
HTML:
<input type="text" name="fname" id="i1">
<input type="text" name="lname" id="i2">
<input type="text" name="fname" id="i3">
<input type="text" name="company" id="i4">
<textarea id="i5"></textarea>
JS:
$( function() {
function updateTextarea() {
$( '#i5' ).val( $( '#i1' ).val() + '\n\n' + $( '#i2' ).val() + '\n\n' + $( '#i3' ).val() + '\n\n' + $( '#i4' ).val() );
}
$( '#i1, #i2, #i3, #i4' ).keyup( updateTextarea );
});
于 2013-10-30T17:20:10.217 回答
0
您可以构建一个可重用的 jQuery 函数来执行此操作,只要您在字段集中对输入进行分组:
HTML:
<fieldset data-concat-into="concatinated">
<input type="text" name="fname" />
<input type="text" name="lname" />
<input type="text" name="fname" />
<input type="text" name="company" />
</fieldset>
<textarea id="concatinated" name="textarea" readonly="readonly" rows="10"></textarea>
jQuery:
$("fieldset[data-concat-into] input").on("keyup", function(){
var fieldset = $(this).parent();
var target = fieldset.data("concat-into");
var vals = "";
fieldset.children("input").each(function(){
vals += ((vals)?"\n":"")+ $(this).val();
});
$("#"+target).val(vals);
});
强制性 JSFiddle:
于 2013-10-30T18:01:52.600 回答
0
或者在香草 JS 中:
(function(){
var fname = document.getElementsByName("fname")[0];
fname.onkeyup=setTextareaValue;
var lname = document.getElementsByName("lname")[0];
lname.onkeyup=setTextareaValue;
var fnamex = document.getElementsByName("fnamex")[0]; //you had two elements named fname
fnamex.onkeyup=setTextareaValue;
var company = document.getElementsByName("company")[0];
company.onkeyup=setTextareaValue;
var textarea = document.getElementsByName("textarea")[0];
function setTextareaValue(){
textarea.value = ""+fname.value+"\n"+lname.value+"\n"+fnamex.value+"\n"+company.value;
}
})();
于 2013-10-30T17:29:50.570 回答