My form does not show any action on clicking the submit button I have create custom module with hook_block , inside the block i want form but the problem (
my from does not take any action of submit ). This is my code

function loan_calculator_block_info() {
  // This example comes from node.module.
  $blocks['loan_calculator'] = array(
    'info' =&gt; t('Loan Calculator'), 
    'cache' =&gt; DRUPAL_NO_CACHE
  );
  return $blocks;
}
function loan_calculator_block_view($delta = '') {
    switch ($delta) {
        case 'loan_calculator':
        $block['subject'] = t('Loan Calculator');
        $block['content'] = drupal_get_form('loanCalculator_form');
    return $block;
    break;
  }
}

function loanCalculator_form(){
  $month = range(1 , 12);
  $form['amount'] = array(
    '#title' =&gt; t('Amount'),
    '#required' =&gt; TRUE, 
    '#type' =&gt; 'textfield'
  );
  $form['duration'] = array(
    '#title' =&gt; t('Duration (Months)'),
    '#required' =&gt; TRUE, 
    '#type' =&gt; 'select',
    '#options' =&gt; $month
  );
  $form['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
    '#submit' =&gt; array('calculator_loan_form_submit')
  );
  return $form;
}

function loanCalculator_form_validate($form, &amp;$form_state) {
  $amount = $form_state['values']['amount'];
  if ($amount == '') {
    form_set_error('amount', t('You must select Amount.'));
  }
  elseif (!is_numeric($amount)) {
    form_set_error('name', t('The Amount must be numeric.'));
  }
}
function calculator_loan_form_submit($form, &amp;$form_state) {
  var_dump($form_state['values']);
  $mount = $form_state['values']['amount'];
  if(!is_numeric($form_state['values']['amount'])) {
    return '&lt;div class="erorr"&gt;'.t('Please Enter numaric value').'&lt;/div&gt;';
  }
  return $mount;
}


How I can fix this problem?
Something like this should work:

/**
 * Implements hook_block_info
 */
function loan_calculator_block_info() {
  // This example comes from node.module.
  $blocks['loan_calculator'] = array(
    'info' =&gt; t('Loan Calculator'), 
    'cache' =&gt; DRUPAL_NO_CACHE
  );
  return $blocks;
}

/**
 * Implements hook_block_view
 */
function loan_calculator_block_view($delta = '') {
    switch ($delta) {
      case 'loan_calculator':
        $block['subject'] = t('Loan Calculator');
        $block['content'] = drupal_get_form('loan_calculator_calculator_form');
    return $block;
    break;
  }
}

/**
 * Form builder
 */
function loan_calculator_calculator_form(){
  $month = range(1 , 12);
  $form['amount'] = array(
    '#title' =&gt; t('Amount'),
    '#required' =&gt; TRUE, 
    '#type' =&gt; 'textfield',
    '#element_validate' =&gt; array('element_validate_number'),
  );
  $form['duration'] = array(
    '#title' =&gt; t('Duration (Months)'),
    '#required' =&gt; TRUE, 
    '#type' =&gt; 'select',
    '#options' =&gt; $month
  );
  $form['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
  );
  return $form;
}

/**
 * Form submit handler
 */    
function loan_calculator_calculator_form_submit($form, &amp;$form_state) {
  drupal_set_message('&lt;pre&gt;'.print_r($form_state['values'],1).'&lt;/pre&gt;');
}


Note, the renamed functions are per Drupal convention, (avoiding hook_form namespace collision), including using default submit handler. Also, no need for validate handler if amount element is required and set to numeric element validator. Tidied up a bit, should be fine but needs testing.