The problem is that your popupPanel content needs to be inside a form. Whilst you may have nested
the popupPanel inside a form, it gets moved in the DOM to be a child of the body, and hence isn't in
a form anymore, and ajax won't work. This is done to allow the dialog to be positioned relative to the
viewport, due to certain CSS features.
To work around this use a construct like this:
or you can take a look at <rich:popupPanel domElementAttachment="form or parent"> (one or the
other) which should prevent the dialog content being relocated in the DOM (read the documentation for
restrictions with this approach).