Comment problem is probably on your end (Score 1) 12
The real problem seems to be that you are letting your users determine appropriate key values for you data model. Why do you get SQL errors when people click submit more than once? You should be generating the keys. In the worst case scenario, you should just get multiple entries in the database. Disabling the submit button won't keep users from going back to the page and simply typing in the same value again in a separate browser instance...
Unless I'm missing something or misunderstood your issue, the problem appears to be in your belief that users can handle creating unique keys.