popup_form() does not hide the "Go" button when called before the page output started.
It calls
$output .= $PAGE->requires->js_function_call('hide_item', Array('noscript'.$formid))->asap();
The select field actually seems to work, it just does not hide the button. Also, the "Go" text appears only the the first button
From the jabber chat:
=================
(18:06:26) david: and why does it happen?
(18:06:53) Tim Hunt: I expect it used to be an inline script.
(18:07:00) david: I see
(18:07:01) Tim Hunt: I'm not sure why ASAP does not work
(18:07:47) Tim Hunt: Well, I sort of do see, but there is not an easy fix.
(18:07:59) Tim Hunt: Bt sam will be able to fix it.
(18:09:49) Tim Hunt: asap will put the js in <head>, so when it executes, the element wiht the right ID does not exist yet.