Thanks Jason. That's perfect.
I think the key thing I hadn't realised was the session variable being set. I kept seeing a message when I hadn't submitted the form. Now I understand that it's behaving exactly as it should.
Huge thanks. You've save me from going round in circles!