why-wont-this-work-dynamic-in-a-select
When DynamicModule is first evaluated, initial assignments for local variables are made during the evaluation. Any setting for the Initialization option is evaluated only when the output of DynamicModule is displayed.
see how-to-make-dynamicmodule-work-without-an-extra-enter
Here is a trick to allow one to control one slider based on another
Manipulate[{a, b}, Grid[{ {"a", Manipulator[Dynamic[a, {(a = #) &, (a = #; If[b > a, b = a]) &}], {1, 10, 1}], Dynamic[a]}, {"b", Manipulator[Dynamic[b, {(b = #) &, (b = #; If[b > a, b = a]) &}], {1, 10, 1}], Dynamic[b]}} ], {{a, 5}, None}, {{b, 3}, None} ]