Have a child node inherit taxonomy from a parent during /node/add?
I ended up using the Rules module for this. It couldn't do it in AJAX when the parent field was specified, but it could make this happen as soon as the child was first saved, and only if its taxonomies were left blank.

The main rule fires a Ruleset component when a child event is saved, and if the parent event is specified. This Ruleset has two parameters: 1) the parent node and 2) the child node.

Next, the Ruleset component just fires two child rules one after another, one for each set of taxonomy terms:

Finally, each individual child rule checks to see if the child event left its taxonomy blank, and if so, sets it to the parent's. I needed one child rule per taxonomy, so that the empty conditions could be checked individually.

That's it! New child events, upon saving, would get the parent tags if it had none of its own.
The code for the rule:
{ &quot;rules_inherit_parent_event_taxonomies&quot; : {
    &quot;LABEL&quot; : &quot;Inherit Parent Event Taxonomies&quot;,
    &quot;PLUGIN&quot; : &quot;reaction rule&quot;,
    &quot;OWNER&quot; : &quot;rules&quot;,
    &quot;REQUIRES&quot; : [ &quot;rules&quot; ],
    &quot;ON&quot; : { &quot;node_insert--event&quot; : { &quot;bundle&quot; : &quot;event&quot; } },
    &quot;IF&quot; : [
      { &quot;node_is_of_type&quot; : { &quot;node&quot; : [ &quot;node&quot; ], &quot;type&quot; : { &quot;value&quot; : { &quot;event&quot; : &quot;event&quot; } } } },
      { &quot;NOT data_is_empty&quot; : { &quot;data&quot; : [ &quot;node:field-program&quot; ] } }
    ],
    &quot;DO&quot; : [
      { &quot;component_rules_set_child_taxonomies&quot; : { &quot;parent_node&quot; : [ &quot;node:field-program&quot; ], &quot;child_node&quot; : [ &quot;node&quot; ] } }
    ]
  }
}

And the ruleset component:
{ &quot;rules_set_child_taxonomies&quot; : {
    &quot;LABEL&quot; : &quot;Set Child Taxonomies&quot;,
    &quot;PLUGIN&quot; : &quot;rule set&quot;,
    &quot;OWNER&quot; : &quot;rules&quot;,
    &quot;REQUIRES&quot; : [ &quot;rules&quot; ],
    &quot;USES VARIABLES&quot; : {
      &quot;parent_node&quot; : { &quot;label&quot; : &quot;Parent Node&quot;, &quot;type&quot; : &quot;node&quot; },
      &quot;child_node&quot; : { &quot;label&quot; : &quot;Child Node&quot;, &quot;type&quot; : &quot;node&quot; }
    },
    &quot;RULES&quot; : [
      { &quot;RULE&quot; : {
          &quot;IF&quot; : [
            { &quot;node_is_of_type&quot; : {
                &quot;node&quot; : [ &quot;parent-node&quot; ],
                &quot;type&quot; : { &quot;value&quot; : { &quot;program&quot; : &quot;program&quot; } }
              }
            },
            { &quot;node_is_of_type&quot; : {
                &quot;node&quot; : [ &quot;child-node&quot; ],
                &quot;type&quot; : { &quot;value&quot; : { &quot;event&quot; : &quot;event&quot; } }
              }
            },
            { &quot;data_is_empty&quot; : { &quot;data&quot; : [ &quot;child-node:field-topic&quot; ] } }
          ],
          &quot;DO&quot; : [
            { &quot;data_set&quot; : {
                &quot;data&quot; : [ &quot;child-node:field-topic&quot; ],
                &quot;value&quot; : [ &quot;parent-node:field-topic&quot; ]
              }
            }
          ],
          &quot;LABEL&quot; : &quot;Inherit parent\u0027s topics if child has none&quot;
        }
      },
      { &quot;RULE&quot; : {
          &quot;IF&quot; : [
            { &quot;node_is_of_type&quot; : {
                &quot;node&quot; : [ &quot;parent-node&quot; ],
                &quot;type&quot; : { &quot;value&quot; : { &quot;program&quot; : &quot;program&quot; } }
              }
            },
            { &quot;node_is_of_type&quot; : {
                &quot;node&quot; : [ &quot;child-node&quot; ],
                &quot;type&quot; : { &quot;value&quot; : { &quot;event&quot; : &quot;event&quot; } }
              }
            },
            { &quot;data_is_empty&quot; : { &quot;data&quot; : [ &quot;child-node:field-audience&quot; ] } }
          ],
          &quot;DO&quot; : [
            { &quot;data_set&quot; : {
                &quot;data&quot; : [ &quot;child-node:field-audience&quot; ],
                &quot;value&quot; : [ &quot;parent-node:field-audience&quot; ]
              }
            }
          ],
          &quot;LABEL&quot; : &quot;Inherit parent\u0027s audiences if child has none&quot;
        }
      }
    ]
  }
}