Reputation: 945
I'm creating two paragraphs from two inputs but I can't put the content from the input into the paragraph.
Here is the code:
HTML
<form id="ip-form" class="custom-form wow fadeInUp" data-wow-duration="1s" data-wow-delay="0.6s">
<div class="row">
<div class="col-6">
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control custom-input-form" id="name" placeholder="Name">
</div>
</div>
</div>
<div class="col-6">
<div class="form-group">
<div class="input-group">
<input type="number" class="form-control my-ip" id="number" placeholder="Name">
</div>
</div>
<button type="submit" class="btn btn-gray no-side-margin float-right" id="add-new">Add</button>
</div>
</div>
</form>
<div class="row">
<div class="col-6" id="new-names">
</div>
<div class="col-6" id="new-numbers">
</div>
</div>
JS
var countName = 0;
var countNumber = 0;
$('#add-new').on('click', function(e) {
e.preventDefault();
$('#new-names').append('<p id="new-name-'+countName+'"></p>');
countName++;
$('#new-numbers').append('<p id="new-number-'+countNumber+'"></p>');
countNumber++;
$('#"new-name'+countName+'"').text($('#name').val());
$('#"new-number'+countNumber+'"').text($('#number').val());
});
I also created on simple Codepen with the code: https://codepen.io/fabiozanchi/pen/PJyeap
Thanks!
Upvotes: 0
Views: 221
Reputation: 20744
Try following:
var countName = 0;
var countNumber = 0;
$('#add-new').on('click', function(e) {
e.preventDefault();
$('#new-names').append('<p id="new-name-' + (countName++) + '">' + $('#name').val() + '</p>');
$('#new-numbers').append('<p id="new-number-' + (countNumber++) + '">' + $('#number').val() + '</p>');
});
Try to make as minimal interactions with DOM as possible. Two .append
and two .val
calls are enough here.
Upvotes: 1
Reputation: 139
Here is what I have done:
ORIGINAL
$('#"new-name'+countName+'"').text($('#name').val());
$('#"new-number'+countNumber+'"').text($('#number').val());
NEW
$('#new-name'+countName).text($('#name').val());
$('#new-number'+countNumber).text($('#number').val());
I added '+$('#name').val()+'
to line 7 and '+$('#number').val()+'
to line 9, between the p tags.
I also changed the placeholder text of your number field. All seems to work fine.
Notes
Aside from some syntax errors, I didn't notice any major issues.
New Code
HTML
<form id="ip-form" class="custom-form wow fadeInUp" data-wow-duration="1s" data-wow-delay="0.6s">
<div class="row">
<div class="col-6">
<div class="form-group">
<div class="input-group">
<input type="text" class="form-control custom-input-form" id="name" placeholder="Name">
</div>
</div>
</div>
<div class="col-6">
<div class="form-group">
<div class="input-group">
<input type="number" class="form-control my-ip" id="number" placeholder="Number">
</div>
</div>
<button type="submit" class="btn btn-gray no-side-margin float-right" id="add-new">Add</button>
</div>
</div>
</form>
<div class="row">
<div class="col-6" id="new-names">
</div>
<div class="col-6" id="new-numbers">
</div>
</div>
JavaScript
var countName = 0;
var countNumber = 0;
$('#add-new').click(function(e) {
e.preventDefault();
$('#new-names').append('<p id="new-name-'+countName+'">'+$('#name').val()+'</p>');
countName++;
$('#new-numbers').append('<p id="new-number-'+countNumber+'">'+$('#number').val()+'</p>');
countNumber++;
$('#new-name'+countName).text($('#name').val());
$('#new-number'+countNumber).text($('#number').val());
});
Upvotes: 1