states multiple triggers
The problem is that this will work as OR, not as AND, so one or the other will make it pass:

'#states' =&gt; array(
  'visible' =&gt; array(
    ':input[name="type"]' =&gt; array(
      array('value' =&gt; '29'),
      array('value' =&gt; '30'),
    ),
  ),
),


This will do AND, however because you cannot have 2 array keys the same, you run into trouble:

'#states' =&gt; array(
  'visible' =&gt; array(
    ':input[name="type1"]' =&gt; array(
      array('value' =&gt; '29'),
    ),
    ':input[name="type2"]' =&gt; array(
      array('value' =&gt; '30'),
    ),
  ),
),


Since the array keys you see there are just jQuery selectors the key is to use 2 different selectors that apply to the same field. For example, something like this might work:

'#states' =&gt; array(
  'visible' =&gt; array(
    ':input[name="type"]' =&gt; array(
      array('value' =&gt; '29'),
    ),
    '.form-item :input[name="type"]' =&gt; array(
      array('value' =&gt; '30'),
    ),
  ),
),


This assumes your type field is in a .form-item div.
There would be a number of possibilities here depending on your markup.

However, making something show when 2 different radio buttons are checked at the same time is impossible because you can only check one at a time.

If you were using checkboxes you could make it so that line only showed if type was 29 AND 30 by doing this:

$form['type'] = array(
  '#type' =&gt; 'checkboxes',
  '#options' =&gt; array(
    '10' =&gt; '10',
    '29' =&gt; '29',
    '30' =&gt; '30',
  ),
  '#title' =&gt; '',
);

$form['line'] = array(
  '#type' =&gt; 'radios',
  '#options' =&gt; array(
    '1' =&gt; '1',
    '2' =&gt; '2',
    '3' =&gt; '3',
  ),
  '#title' =&gt; '',
  '#states' =&gt; array(
    'visible' =&gt; array(
      ':input[name="type[29]"]' =&gt; array(
        array('checked' =&gt; TRUE),
      ),
      ':input[name="type[30]"]' =&gt; array(
        array('checked' =&gt; TRUE),
      ),
    ),
  ),
);