Well whatever you do, make sure to wrap your stuff up in your own namespace so you you can minimize function conflicts with WordPress!
Anyway back to your issue – if most of your users are using JavaScript, you can basically hide the submit button until the appropriate fields are filled in. Pros: easy to implement. Cons: not foolproof and there may be accessibility issues.
Or you can do the standard form validation approach where after the submit button is hit, the form data goes through a validation process. If all the required fields are filled in correctly (and the data input is good – always make sure to check this if you’re going to be inserting this data into any database or used anywhere else on the site) then the real submission script fires off and actually submits the data. Otherwise, error message to the user. A good basic example of form validation can be found here: https://www.sitepoint.com/form-validation-with-php/
Please note that form validation is pretty complex – it is almost always a better idea to use an existing form validation library then to build your own. Finally, if at all possible, I’d recommend searching for some WordPress plugins that can help you build a form, provide form validation, and tie in nicely within WordPress itself.