Even during our primaries, when voter goes to the polls, they must choose one party only to receive the ballot.
How are you going to change it?
And you just nailed the problem of allowing people to switch registrations on the same day as voting or caucusing. Most states require you to be registered in any party 30 days prior to the election at the most. This would stop most of the gate crashers.