#1
by
AndreL
I have a page where subjects type 2 numerical inputs ('cash0' and 'save0'). I also parse js_vars.wealth0 from the players model. I then use a script for instant calculation: ============================================ <script> let cash0Input = document.getElementsByName('icash0')[0]; let save0Input = document.getElementsByName('isave0')[0]; let cons0Ele = document.getElementById('cons0'); function recalc() { let cash0 = parseFloat(cash0Input.value); let save0 = parseFloat(save0Input.value); cons0Ele.innerText = (js_vars.wealth0 - cash0 - save0).toFixed(2); } cash0Input.oninput = recalc; save0Input.oninput = recalc; </script> ================================================ How could I also prevent subjects from typing any value (or at least that they got an instant alert) if 'cons0' becomes negative given 'cash0' and 'save0'?
#2
by
Chris_oTree
There are various ways; one is setCustomValidity: https://developer.mozilla.org/en-US/docs/Web/API/HTMLObjectElement/setCustomValidity