Is it possible to call a child "Jack Watson Junior" if his father is called "Charles Watson"? Is it necessary that the father and the son have the same name to be called "Junior" and "Senior" or is it possible to name a child "Jack Watson Junior" in honor of his uncle, for example, or his grandfather who would be called Jack Watson? Are "Junior" and "Senior" only to be used for fathers and sons without any generation between them?
I wanted to know if it was possible to call a child Jack Watson Junior if his father is called Charles Watson?
No; junior and senior are only used if the names are exactly the same.
Or is it possible to name a child Jack Watson Junior in honor of his uncle for example or his grandfather who would be called Jack Watson?
Technically, a child named after a relative who is not his father should be called "Jack Watson II" (pronounced "Jack Watson the second") instead of "junior". Then if there is a third Jack Watson in the family, he would be "Jack Watson III" ("Jack Watson the third"), and so forth.
(I actually did once know a person who was called "John Smith junior" even though the original John Smith was his grandfather and not his father, but this was unusual enough that people remarked on it, because it is not the normal way to do it.)
Also, junior or senior is almost always written as Jr. or Sr. instead of being spelled out.
This depends on country and culture. These suffixes are found much more commonly in the US than elsewhere, and I think most of the existing answers are US-specific.
In the UK it used to be common to refer to men and boys by surname alone; this probably survived in boys' schools for rather longer than it did in the outside world. Two brothers would then be referred to as Jones senior and Jones junior, regardless that they had different first names. But the suffix was never part of the name, just a way of distinguishing them.
Junior is used to refer to people that have the exact same name as their parent (usually dad). For example: my name is Rob Rouse Jr. (because my dad's name is Rob Rouse)
Your example with Charles & Jack wouldn't be the correct situation, because their first names are different.
You ONLY call someone Junior if their father has the exact same name, never in honor of somebody. Usually, when you want to honor someone's name, you typically use their name as the middle name of the child. For example: if you want to honor uncle Michael, then you'd name your child Jack Michael Watson
The convention of the "junior" suffix is there to easily distinguish between people who might be mixed up. Generally, there would be another close living relative of the same name to require the use of 'junior'.
The closer the generations are in age, and the more geographically proximate they live, the more likely it is that "Junior" will refer to a living grand-parent or living great-grandparent, rather than a parent.