Civi is Requiring "On Behalf of Organization" fields when that's not even checked
Never did find a good solution. We ended up just removing the option from the form. At the time, I think we misunderstood how CivicCRM works and what the purpose of "on behalf of an organization" was. One thing we learned though, that might help you. The organization in question has to already exist in the database. I think that is still true for the latest versions of CiviCRM.

Anyway, we just tell donors that if they want to contribute "as an organization" (note the wording: not "on behalf of an organization" but rather, "as an organization"), then they need to use a corporate credit card or a corporate bank account. That way, the organization entity gets the tax credit, not the individual. Civi assumes that the donor is an individual. Always, so far as I know. So, if the donor in filling out the online form is "representing" a corporate entity, that's fine. Can do that. But the payer, usually as indicated by the payer address (the billing address associated with the credit card), is the one that the IRS will look for if they ever audit. Of course, you can set it up so that the person filling out the form gets a "soft credit" whereas the actual payer (the organization) gets the hard credit. Hope this helps.