Własnie wczoraj miałęm ten sam problem i nie dość że sobie poradziłem od html5 to jeszcze dopisałem js w razie gdybys potrzebowal np edytujac pole netto aby wskoczylo ci pole brutto (przeliczylo wg zmiennej) lub na odwrot
pola netto i brutto
<input class="form-control text-center" type="number" id="
<?php echo $p['id'].'-PriceNetto'; ?>" name="products[
<?php echo $number - 1; ?>][priceNetto]" value="
<?php echo number_format($p['priceNetto']['value'], 2, '.', ''); ?>" min="0.00" step="0.01" pattern="^\d+(?:\.\d{1,2})?$" onblur="updateBrutto('
<?php echo $p['id']; ?>', '
<?php echo $p['tax']['value']; ?>');"/>
<input class="form-control text-center" type="number" id="
<?php echo $p['id'].'-PriceBrutto'; ?>" name="products[
<?php echo $number - 1; ?>][priceBrutto]" value="
<?php echo number_format($p['priceBrutto']['value'], 2, '.', ''); ?>" min="0.00" step="0.01" pattern="^\d+(?:\.\d{1,2})?$" onblur="updateNetto('
<?php echo $p['id']; ?>', '
<?php echo $p['tax']['value']; ?>');"/>
a kod js/jquery
function updateBrutto(id, tax) {
var vat = tax;
var inputNetto = $('#' + id + '-PriceNetto');
var nettoValue = $(inputNetto).val();
var bruttoValue = 0;
if (vat !== 'ZW') {
nettoValue = parseFloat(nettoValue);
bruttoValue = parseFloat(nettoValue) + parseFloat(vat * nettoValue / 100);
}
return [
$(inputNetto).val(nettoValue.toFixed(2)),
$('#' + id + '-PriceBrutto').val(bruttoValue.toFixed(2))
];
}
function updateNetto(id, tax) {
var vat = tax;
var inputBrutto = $('#' + id + '-PriceBrutto');
var bruttoValue = $(inputBrutto).val();
var nettoValue = 0;
if (vat !== 'ZW') {
bruttoValue = parseFloat(bruttoValue);
nettoValue = parseFloat(bruttoValue) / parseFloat('1.' + vat);
}
return [
$(inputBrutto).val(parseFloat(bruttoValue).toFixed(2)),
$('#' + id + '-PriceNetto').val(nettoValue.toFixed(2))
];
}
tu masz przykład jak działa sam js
https://jsfiddle.net/6v3Lrgja/