suppose that $f:A \rightarrow B$ and $g:B \rightarrow C$ are functions. Show that if $g\circ f$ is onto then $g$ is onto. $\forall x \in A ,\forall g\circ f(x) \in C$ (since $g\circ f$ is onto)
$\implies \forall g[f(x)] \in C$ (since $g\circ f(x) = g[f(x)]$ )
$\implies \forall f(x) \in B$ (since $g:B\rightarrow C$ and $B$ is the domain of the $g$)
Therefore if $\forall x \in A,\forall g\circ f(x) \in C, then \forall f(x) \in B,\forall g\circ f(x) \in C$.
So if $g\circ f$ is onto then $g$ is onto.
Is this correct and complete? Is there another way to prove it?
Your proof has just no sense. What you have to prove is :
$$\forall y\in C, \exists x\in B: y=g(x).$$

Let $y\in C$. Since $g\circ f$ is onto, there is $x\in A$ s.t. $y=g\circ f(x)$. Set $u=f(x)\in B$. Then $y=g(u)$, and thus $g$ is onto.
To be honest I can't understand the terminology of your question
We need to use the definitions for this purpose.
Given that $g\circ f$ is onto and the range of the function $g$ is $C$ whereas its domain is $B$. Also the range of the function $f$ is $B$. Let $x \in A$. This implies $f(x) \in B$. Now consider $g\circ f (x)$ or $g\big(f(x)\big) \in C$ (because range of function $g$ is $C$). Now we need to prove that for every $y\in C$, there exists an $f(x)\in B$ such that $f=g\big(f(x)\big)$. If $g\circ f$ is onto (given) then for every $g\big(f(x)\big)$, there exists an $f(x)\in B$ such that $g\big(f(x)\big)\in C$. Let $f(x) = k\in B$. and let image of $f(x)$ under $g$ be $y$. Hence $y=g(k)$. This shows that for all $y\in C$ there exists a $k\in B$ such that $y=g(k)$ which is the definition of onto function.