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} 
 
 ]