From my understanding, smart-contracts can be upgraded with ease, meaning there is nothing preventing you from modifying your input (ie, like a Forms Input) to change the smart-contract output. It just creates a branch to the original ledger within the blockchain with the caveat that such a change can also be used to detect/enact function calls from within your dApp. Think of it like if a change is detected, launch a modal window to enables consensus voting on the smart-contract change and why. Just be careful of infinite loops in your code that could get very resource hungry and potentially become very expensive in terms of Gas usage etc.