I've been trying to get around why my TextBox isn't working on a SurfaceGui. At first, I tested it in Studio, in Play Solo, I thought it would work Online. Online, though, it didn't work either. I even tried in a different game, and it still wouldn't let me click into the textbox and type into it. If you don't believe me, here's some proof. As you can see, there isn't normally the black cursor that would pop up when you hover over a text box. Has anyone else got the same problem, or is it something to do with my game client or what?
TextBoxes can not be used in SurfaceGui's on the server because you can type something inappropriate without actually submitting it -- and other players would be able to see that too.
What you can do however is setting the SurfaceGui's Adornee to the part you want the SurfaceGui to appear:
script.Parent.Adornee = workspace.Part
It should then work, however any interactions with the SurfaceGui will not be visible to other players.