In this kind of programming there are no hard and fast rules.
I don't think there is a significant difference between the two.
Which one you choose depends on how creatively you put the function
JSCheck() together.
However, i prefer the second. I get the feeling the button is
'overloaded', as it has to respond to two events: submit the form
and run the script.
Also, if the Javascript performs form validation, then it
will only be natural for it to be called by onSubmit. Imagine that
the result of the form validation,
return JSCheck(this.form), is a boolean. If it is true, the
form is submitted; otherwise, not. In these circumstances the code
onSubmit="true;" will be more natural than the code
onClick="true;" .