Form #states visible for numeric values The form has two radio buttons like follows.The "design" radio field should be visible only when user selects 'Ten' or 'hundred' from the "price" field. 

If user choose 'other' it should not be visible.

I tried like follows, it's working but by default the 'design' field is come with visible state.

//$options array is dynamic.  
$options =  array(10 =&gt; 'Ten', 100 =&gt; 'hundred', 'other' =&gt; 'Other');

  $form['price'] = array(
    '#type' =&gt; 'radios',
    '#title' =&gt; t('Price?'),
    '#options' =&gt; $options,
    );
  $form['design'] = array(
   '#type' =&gt; 'radios',
   '#title' =&gt; t('Designs'),
    '#options' =&gt; $designs,
   );
  $form['design']['#states'] = array(
    'visible' =&gt; array(
        array(':input[name="price"]' =&gt; array('!value' =&gt; 'other')),
    ),
  );


I've tried several ways like follows with no luck.

array(':input[name="price"]' =&gt; array('!value' =&gt; '')),
array(':input[name="price"]' =&gt; array('checked' =&gt; TRUE)),


Is there any option like to check the selected value is numeric or not? like

array(':input[name="price"]' =&gt; array('value' =&gt; isNumeric)),


or the other option would loop through the dynamic option values?

      array(':input[name="category"]' =&gt; array('value' =&gt; 10)),
      'or',
      array(':input[name="category"]' =&gt; array('value' =&gt; 100)),
      'or',
        .
        .
        etc


Any suggestions or input would be much appreciated.
Try this:

$form['design']['#states'] = array(
  'visible' =&gt; array(
    ':input[name="price"]' =&gt; array('!value' =&gt; 'other'),
  ),
);


though, to be honest I'm much more a fan of:

$form['design']['#states'] = array(
  'invisible' =&gt; array(
    ':input[name="price"]' =&gt; array('value' =&gt; 'other'),
  ),
);


Here are some good examples to follow. Not exactly your case, but close.