JSFiddle - React, Tailwind, and code Playground
HTML
<table>
<tr class="selectable">
<td class="center">
<input type="text" name="qtd" />
</td>
<td class="text-center">
<input type="text" name="valor" value="10" />
</td>
<td class="text-center">
<select name="mark" id="mark" >
<option value="0.80">0.80</option>
<option value="0.85">0.85</option>
<option value="0.90">0.90</option>
</select>
</td>
<td class="text-center">
<input type="text" name="total" value="resultado" />
</td>
</tr>
</table>
JavaScript
function getClosest(el, tagName) {
while (el = el.parentNode) {
if (el.tagName.toLowerCase() == tagName) return el;
}
}
window.addEventListener('keyup', function (e) {
// caso nĂŁo seja o input pretendido
if (e.target.name != 'qtd') return;
// ir buscar o valor inserido
var value = parseFloat(e.target.value);
//pega o valor do select
var selectMark = parseFloat(document.getElementById("mark").value);
// ir buscar o outro valor dentro da mesma linha
var tr = getClosest(e.target, 'tr');
var valor = tr.querySelector('input[name="valor"]');
// calcular a soma
var mult = value * parseFloat(valor.value);
//divide pelo valor
var result = mult / selectMark;
// inserir a soma no input total da mesma linha
tr.querySelector('input[name="total"]').value = result;
});