JSFiddle - React, Tailwind, and code Playground
by opeta
HTML
<table class='wrapper' width="800" cellspacing='1' cellpadding='2' >
<tr>
<td width="205" colspan="4" rowspan="2" align="center" class="row1">DADOS APURADOS</td>
<td width="56" rowspan="2" align="center" class="row1">VALOR</td>
<td rowspan="2" class="row1" align="center">DISCRIMINAÇÃO</td>
<td colspan="2" class="row1" align="center">SEM/PROM</td>
</tr>
<tr>
<td width="29" class="row2"><input name="sem1" type="text" id="sem1" size="1"></td>
<td width="53" class="row2"><input name="semdt1" type="text" id="semdt1" value="<?php echo date('Y') ?>" size="3"></td>
</tr>
<tr>
<td width="205" rowspan="7" class="row1" align="center">P<br /> O <br />N <br />T <br />O <br />S <br /><br /><br />
P<br />
O<br />
S<br />
I<br />
T<br />
I<br />
V <br />
O<br />
S</td>
<td width="205" rowspan="4" align="center" class="row1">TEMPO<br />DE<br />SERVIÇO</td>
<td colspan="2" class="row3">FUNÇÃO </td>
<td class="row3">
<input name="t1" type="text" disabled="disabled" id="t1" value="0.10" size="5"></td>
<td width="45" class="row3"><input name="disc1a" type="text" id="disc1a" class="nr" size="9"></td>
<td colspan="2" class="row3"><input name="promo1a" type="text" id="promo1a" class="soma" size="12"></td>
</tr>
<tr>
<td colspan="2" class="row2">PERMANÊNCIA </td>
<td class="row2">
<input name="t2" type="text" disabled="disabled" id="t2" value="0.20" size="5"></td>
<td class="row2"><input name="disc2a" type="text" id="disc2a" class="nr" size="9"></td>
<td colspan="2" class="row2"><input name="promo2a" type="text" id="promo2a" class="soma" size="12"></td>
</tr>
<tr>
<td colspan="2" class="row3">INSTRUTOR</td>
<td class="row3"><input name="t3" type="text" disabled="disabled" id="t3" value="0.25" size="5"></td>
<td class="row3"><input name="disc3a" type="text"...
CSS
body {
font-family: "Helvetica Neue", Helvetica, Arial;
font-size: 14px;
line-height: 20px;
font-weight: 400;
color: #3b3b3b;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased;
background: #2b2b2b;
}
.wrapper {
margin: 0 auto;
padding: 20px;
max-width: 800px;
}
.table {
margin: 0 0 40px 0;
width: 100%;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
display: table;
}
@media screen and (max-width: 580px) {
.table {
display: block;
}
}
.row {
display: table-row;
background: #f6f6f6;
}
.row:nth-of-type(odd) {
background: #e9e9e9;
}
.row.header {
font-weight: 900;
color: #ffffff;
background: #ea6153;
}
.row.green {
background: #27ae60;
}
.row.blue {
background: #2980b9;
}
@media screen and (max-width: 580px) {
.row {
padding: 8px 0;
display: block;
}
}
.cell {
padding: 6px 12px;
display: table-cell;
}
@media screen and (max-width: 580px) {
.cell {
padding: 2px 12px;
display: block;
}
}
.txtdiv{
-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);
filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
}
.row1 {
font-weight: 900;
color: #ffffff;
background: #2980b9;
}
.row2 {
background: #f6f6f6;
}
.row3 {
background: #e9e9e9;
}
JavaScript
$(window).load(function(){
// Somente numeros
$('.nr').keyup(function() {
var valor = $(this).val().replace(/[^0-9]+/g,'');
$(this).val(valor);
});
$("#disc1a").keyup(function(){
var quantidade = $(this).val();
var valor = $("#t1").val();
var soma = "";
if ((quantidade != "") && (valor != "")){
soma = (parseFloat(valor) * parseInt(quantidade));
if(isNaN(soma)){
soma = "";
}else{
soma = soma.toFixed(2);
}
}
$("#promo1a").val(soma);
});
$("#disc2a").keyup(function(){
var quantidade = $(this).val();
var valor = $("#t2").val();
var soma = "";
if ((quantidade != "") && (valor != "")){
soma = (parseFloat(valor) * parseInt(quantidade));
if(isNaN(soma)){
soma = "";
}else{
soma = soma.toFixed(2);
}
}
$("#promo2a").val(soma);
});
$("#disc3a").keyup(function(){
var quantidade = $(this).val();
var valor = $("#t3").val();
var soma = "";
if ((quantidade != "") && (valor != "")){
soma = (parseFloat(valor) * parseInt(quantidade));
if(isNaN(soma)){
soma = "";
} if ((soma < "1.50")){
soma = soma.toFixed(2);
}else{
soma = "1.50";
}
}
$("#promo3a").val(soma);
});
$("#disc4a").keyup(function(){
var quantidade = $(this).val();
var valor = $("#t4").val();
var soma = "";
if ((quantidade != "") && (valor != "")){
soma = (parseFloat(valor) * parseInt(quantidade));
if(isNaN(soma)){
soma = "";
}else{
soma = soma.toFixed(2);
}
}
$("#promo4a").val(soma);
});
});
function calcula(){
var valor = 0;
$('.soma').each(function(i){
valor = parseFloat($(this).val()) + valor ;
});
valor = valor.toFixed(2);
$('#total1a').val( valor );
}