Submit form when field value changed
Here is how I was able to do this using attributes...

'#attributes' =&gt; array('onchange' =&gt; 'this.form.submit();'),


So it was just simple ....

function MYMODULE_form($form, &amp;$form_state) {
  $form['#method'] = 'get';
  $params = drupal_get_query_parameters();
  $form['cat'] = array(
    '#type' =&gt; 'select',
    '#title' =&gt; t('Categories'),
    '#options' =&gt; $categories,
    '#default_value' =&gt; isset($params['cat']) ? $params['cat'] : '',
    '#attributes' =&gt; array('onchange' =&gt; 'this.form.submit();'),
  );
}


Now I am able to submit form when field is changed.