let condition, price, converted;
const calculate = () => {
if(isNaN(condition.value) || isNaN(price.value)) return;
converted.value = price.value * condition.value;
}
window.addEventListener('DOMContentLoaded', () => {
condition = document.getElementById('cena_sam');
price = document.getElementById('cena_pln');
converted = document.getElementById('cena_stan');
[condition, price].forEach(element => {
element.addEventListener("change", calculate);
});
});
<select id="cena_sam">
<option value="1.2">Idealny</option>
<option value="1.1">Bardzo Dobry</option>
<option value="1.0" selected>Dobry</option>
<option value="0.9">Średni</option>
<option value="0.8">Zły</option>
</select>
<input type="text" id="cena_pln" value=1000 required>
<input type="text" id="cena_stan" >
Troszkę zmieniłem kod. Oznaczyłeś elementy przez name, a próbowałeś się do nich dostać po id. W js używa się camelCase. Inputy #cena_pln i #cena stan powinny mieć [type=number]. W html używa się kebab-case. Element #cena_stan nie powinien być w ogóle inputem, bo ktoś go może edytować. Może coś przeoczyłem