Reputation: 29
I want each button to increment the value text field next to it
<input type="number" value="0" min="0" max="5" step="1" id="qty"/>
<button onclick="buttonClick()" type="button" class="btn btn-success btn-sm" id="add">ADD</button>
Javascript:
var i = 0;
function buttonClick() {
document.getElementById('qty').value = ++i;
}
I'm using this code but it is adding value to first text field only after pressing any of the button on page.
Upvotes: 0
Views: 2329
Reputation: 176
Based on the design you've provided, it seems like you want to be able to use this on multiple "items".
With that in mind you will not be able to use ids. To get around that you can do something like this instead while taking advantage of some dom based javascript manipulation.
<div class="item">
<input type="number" value="0" min="0" max="5" step="1"/>
<button onclick="buttonClick(this)" type="button" class="btn btn-success btn-sm">ADD</button>
</div>
As far as the javascript is concerned since the button is after the text input field you can use element.previousElementSibling
function buttonClick(element) {
let qtyBox = element.previousElementSibling;
qtyBox.value = parseInt(qtyBox.value) + 1;
}
Upvotes: 0
Reputation: 1
Hello @Hemanshu Dharmik;
You should probably do something like this:
var i = 0; function buttonClick() {
document.getElementById('add').value = i++; } </script>
I hope this gets your counter done work properly.
Upvotes: 0
Reputation: 438
Since you said the button is only adding value to the first text field, you can give different IDs to each text field with its own onclick
function so they can be used separately
Here's an example with your code
var i = 0;
var x = 0;
var y = 0;
function buttonClick1() {
document.getElementById('qty1').value = ++i;
}
function buttonClick2() {
document.getElementById('qty2').value = ++x;
}
function buttonClick3() {
document.getElementById('qty3').value = ++y;
}
<input type="number" value="0" min="0" max="5" step="1" id="qty1" />
<button onclick="buttonClick1()" type="button" class="btn btn-success btn-sm" id="add">ADD</button>
<input type="number" value="0" min="0" max="5" step="1" id="qty2" />
<button onclick="buttonClick2()" type="button" class="btn btn-success btn-sm" id="add">ADD</button>
<input type="number" value="0" min="0" max="5" step="1" id="qty3" />
<button onclick="buttonClick3()" type="button" class="btn btn-success btn-sm" id="add">ADD</button>
.
Upvotes: 0
Reputation: 104
function incrementValue()
{
var value = parseInt(document.getElementById('number').value, 10);
value = isNaN(value) ? 0 : value;
value++;
document.getElementById('number').value = value;
}
<form>
<input type="text" id="number" value="0"/>
<input type="button" onclick="incrementValue()" value="Increment Value" />
</form>
Here you go: Implementation Example: Html
<form>
<input type="text" id="number" value="0"/>
<input type="button" onclick="incrementValue()" value="Increment Value" />
</form>
Javascript:
function incrementValue()
{
var value = parseInt(document.getElementById('number').value, 10);
value = isNaN(value) ? 0 : value;
value++;
document.getElementById('number').value = value;
}
Upvotes: 2