Trying to submit a node add form via AJAX but failing
Solved it. The problem was this code:

  $form['actions']['submit'] = array(
    '#type' =&gt; 'submit',
    '#value' =&gt; t('Submit'),
    '#ajax' =&gt; array(
        'wrapper' =&gt; 'apple-node-form',
        'callback' =&gt; 'node_add_callback',
        'method' =&gt; 'replace',
        'effect' =&gt; 'fade'
    )
  );


This overwrites the $form['actions']['submit'] array that already existed, recreating it with the values I specified. Since all I wanted to do was add an AJAX submission, the following code should replace the above:

    $form['actions']['submit']['#ajax'] = array(
        'wrapper' =&gt; 'apple-node-form',
        'callback' =&gt; 'node_add_callback',
        'method' =&gt; 'replace',
        'effect' =&gt; 'fade'
    );


In other words, we're just adding an #ajax item to the already created $form['actions']['submit'] array.