Попробовав несколько разных хаков, я нашел довольно простое решение этой проблемы, создал функцию темы для формы и добавил туда js. Это будет выглядеть примерно так:
function theme_content_type_node_form($form) {
drupal_add_js(...);
return theme('node_form', $form);
}
Это просто вызывает функцию темы по умолчанию для формы добавления узла после добавления js. Так как функция темы вызывается даже при кешировании формы, это прекрасно работает. Вам также нужно реализовать hook_theme, чтобы эта работа работала.
Обновление для Drupal 7.
Drupal 7 делает это намного проще, так как это возможно
$form['#attached']['js'][] = 'path_to_js_file;
Примером использования этого может быть:
$form['#attached']['js'][] = drupal_get_path('module', 'foo') . '/js/foo.form.js';