If you want to foolproof this form you can't use JavaScript to do anything if you need this form to work...
It can be shut down and then you wont have any submitions from that user... I know there are only like 3% of users that disable JS in their browsers but you should consider them as well...
All of this you ask can be achieved using JS but like I said it can be shut down and hence it won't work...
To use PHP... Well I don't know, but you should have a button to submit form and then do anything because if you don't the form can't be processed by PHP. Now you have JS taking care of submitting the form but when it is disbled no submition will take place...
Anyway, leatherback said it: some people (well from where I am almost all of us) have dynamic IP's adn athough it could be the best option you might and to use it along with cookies and similar stuff...