AJAX button - HTML in #value causes problems
Here is the proper way of adding glyphicons to your buttons, you alter the button function and use a custom made one.

function mymodule_theme_registry_alter(&amp;$theme_registry) {
  if (isset($theme_registry['button'])) {
    $theme_registry['button']['function'] = 'mymodule_button';
  }
}

function mymodule_button($variables) {
  $element = $variables['element'];
  $element['#attributes']['type'] = 'submit';
  element_set_attributes($element, array('id', 'name', 'value'));

  $element['#attributes']['class'][] = 'form-' . $element['#button_type'];
  if (!empty($element['#attributes']['disabled'])) {
    $element['#attributes']['class'][] = 'form-button-disabled';
  }
  if (!empty($element['#glyphicon'])) {
    $glyph_name = $element['#glyphicon'];
    return '&lt;button' . drupal_attributes($element['#attributes']) . ' /&gt;&lt;span 
      class="glyphicon glyphicon-' . $glyph_name . '"&gt;&lt;/span&gt; '.
      $element['#value'] .'&lt;/button&gt;';
  }
  else {
    return '&lt;input' . drupal_attributes($element['#attributes']) . ' /&gt;';
  }
}


Then all you have to is add #glyphicon element to the submit and assign it the glyphicon name:

  $form['submit_button'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; 'Send',
    '#glyphicon' =&gt; 'envelope', // in your case use "refresh"
  );


Result: