Is the sentence, "It's on tonight," grammatically correct? What about "It's on for tonight?" Are they both correct? Is there any difference at all?
Both are grammatical expressions, and common.
This can refer to a TV program that will be broadcast this evening. Or it can refer to some other form of entertainment. Or it can mean there is a confrontation looming.
This means some prearranged plan or meeting is to take place tonight.
The "it" in both cases refers to some unspecified matter which will either be understood from context or explicitly stated before or after these sentences.
That brings us to the simple expression
This is the confrontation I referred to above (often given as "Oh, it's on!") meaning that the speaker has accepted or recognized that a challenge of some sort has been issued and means to accept it, usually with relish or special determination to win.
Taken out of context, both phrases are meaningless. Within proper context, the "it" should be clear. If my wife and I are discussing a new TV show, she might say "it's on tonight." If she said this three hours after the mention of the new program, I'd have no idea what she was talking about.