The element with name no_needed
is an input
, not select
.
<input type="number" name="no_needed" title="" required id="id_no_needed" step="0.01" />
So your selector for it should be input[name=no_needed]
instead of select[name=no_needed]
.
Similarly, to select the input with name total_price
, the selector would be input[name=total_price]
. Also, since you intend to set value of it, instead of settings its .text()
, you need to set .val()
.
See the updated snippet:
$(document).ready(function() {
$('select').on('change', function() {
$('input[name=total_price]').val($('select[name=max_size]').val() *
($('input[name=no_needed]').val()));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="form-group"><label class="sr-only" for="id_max_size">Max
Size</label><select name="max_size" title="" required class="form-control" id="id_max_size">
<option value="" disabled selected>Size ↓</option>
<option value="10">AAA</option>
<option value="20">BBB</option>
<option value="30">CCC</option>
<option value="40">DDD</option>
</select>
</div>
<input type="number" name="no_needed" title="" required id="id_no_needed" step="0.01" />
<input type="number" name="total_price" title="" required id="id_total_price" step="0.01" />
Also, you could set a change event handler on no_needed
input to update the total price even if the size doesn't change:
function recalculatePrice() {
$('input[name=total_price]').val(
($('select[name=max_size]').val() *
$('input[name=no_needed]').val()).toFixed(2)
);
}
$(document).ready(function() {
$('select').on('change', function() {
recalculatePrice();
});
$('input[name=no_needed]').on('input', function() {
if($(this).val()) {
if(!isNaN($(this).val())) {
recalculatePrice();
} else {
$(this).val("");
}
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="form-group"><label class="sr-only" for="id_max_size">Max
Size</label><select name="max_size" title="" required class="form-control" id="id_max_size">
<option value="" disabled selected>Size ↓</option>
<option value="10">AAA</option>
<option value="20">BBB</option>
<option value="30">CCC</option>
<option value="40">DDD</option>
</select>
</div>
<input type="number" name="no_needed" title="" required id="id_no_needed" step="0.01" />
<input type="number" name="total_price" title="" required id="id_total_price" step="0.01" />