Details
Description
I'm running Civi 4.4.5 on D6, but I think this is CMS-agnostic.
If you set up a price set for an event that contains a required fee level which is allowed to be 0, and also contains non-zero optional fee levels, and then set the required fee level to zero and select a non-zero optional fee, the javascript on the register form will hide the payment details fields, but the form won't submit without them.
For example, we're running a conference this summer, and we have some extra-fee events before the main conference. Sometimes our attendees can't make the full conference, but still want to come to the pre-conference workshops. So, we set up a price set to allow them to register for only the pre-conference events, but because it runs into the problem above, it isn't actually working.
I've reproduced the issue on the demo site; you can see it in the attached screenshots.