'textfield', '#required' => FALSE, '#size' => 10, '#executes_submit_callback' => TRUE, '#element_validate' => array('issue_tracker_goto_field_validate'), ); $form['submit'] = array( '#type' => 'hidden', '#value' => t('x'), ); return $form; } /** * Goto form validation */ function issue_tracker_goto_field_validate($element, &$form_state) { // assert integer value if (!ctype_digit($element['#value'])) { form_error($element, t('Enter an integer value')); } } /** * Goto form submit handler */ function issue_tracker_goto_form_submit($form, &$form_state) { $input_id = (int)$form_state['values']['issue_id']; $result = db_query('SELECT * from {issues} where `issue_id` = %d', $input_id); $row = db_fetch_object($result); if ((bool)$row == FALSE) { drupal_set_message(t('Issue #'. $input_id .' does not exist.')); } else { drupal_goto('issues/'. $input_id); } }