Since the Okay button takes the user to the next screen, it is incorrectly named. It should be called Next (and a well-designed wizard also has a Back button on screens other than the first).
Okay generally means "complete the action implied by this dialog and dismiss it" which is not applicable here.
The proper way to handle incomplete input is to show, but disable the Next button whenever the form is in an incomplete state. This is done by "greying out", or whatever is consistent with the UI conventions of the platform.
A well-designed screen of this type will have an event handler for every single keystroke event, and other events, so that it can update the button's state instantly.
For instance, if all that remains for completion is to fill in one mandatory field, and a character is typed into that field, the button should instantly become enabled. And if that character is erased, the button should instantly disable.
If you want to inform the user that he or she must complete the form before the Next button will activate (it's not necessarily obvious to everyone), the modern way is to provide a tooltip. If the pointer is hovered over the disabled Next button, a tooltip can pop up with the explanatory text.
Dialog boxes are annoying. Imagine if locked doors popped up dialog boxes instead of simply providing the feedback of not yielding to moderate force. "Error! You cannot get into this car because it is locked. And, guess what, right now you cannot put in the key even if you have it because you first have to dismiss this modal dialog. That'll teach you to jiggle locked door handles!"