user3567781
user3567781

Reputation: 23

Copy text from text fields to textarea + labels

[SOLVED] I have a script that copies text from text fields to text area. My question is how can I upgrade this script so it would copy labels to? Or if I could somehow add extra text before field value?

This is my HTML:

<label>Input1: </label> <input type="text" name="i1" class="entry" id="field_1" value="" /> <br />
<label>Input2: </label> <input type="text" name="i2" class="entry"  id="field_2" value="" /><br />
<label>Input3: </label> <input type="text" name="i3" class="entry"  id="field_3" value="" /><br />
<label>Input4: </label> <input type="text" name="i4" class="entry"  id="field_4" value="" /><br />
<label>Input5: </label> <input type="text" name="i5" class="entry"  id="field_5" value="" /><br /><br />

<input type="button" name="b" value="copy" /><br /><br />

<textarea class="box" name="t" rows="5"> </textarea>

And this:

<script type="text/javascript">
$( document ).ready(function() {
$("input:button").click(function() {
    var values = "";
    $("input:text").each(function(i) {
        values += (i > 0 ? "\n" : "") + this.value;
    });
    $("textarea").val(values);
});
});
</script>

EDIT: Is there any way of not showing text if some of the text fields are empty?

I added if(this.value.length > 1) and when copy is pressed it shows "undefined".

Upvotes: 2

Views: 1661

Answers (1)

Balachandran
Balachandran

Reputation: 9637

try

$( document ).ready(function() {
    $("input:button").click(function() {
        var values = "";
        $("input:text").each(function(i) {
            var text=$(this).prev("label").text();
            values+=text+"  " ;
            values +=  (i > 0 ? "\n" : "") + this.value;
        });
        $("textarea").val(values);
    });
});

DEMO

Upvotes: 1

Related Questions