Button act as submit button in form API
As mentioned in the comments, this is not supported yet but it might at some point: https://www.drupal.org/project/drupal/issues/1671190

What you can do is return false in the onclick event. For example:

$form[button] = array(
  '#type' =&gt; 'button',
  '#name' =&gt; 'button',
  '#value' =&gt; "Do some JS",
  "#attributes" =&gt; array(
    "onclick" =&gt; "doJs(); return false;",
  ),
);