Drupal 7 ajaxed选择字段出现“非法选择”错误(不使用Drupal FAPI ajax)

Drupal 7 ajaxed选择字段出现“非法选择”错误(不使用Drupal FAPI ajax),ajax,drupal-7,modal-dialog,drupal-ctools,Ajax,Drupal 7,Modal Dialog,Drupal Ctools,当使用非FAPI ajax方法替换选择列表时,试图找出如何解决非法选择被检测到的错误 范例 在节点创建表单上,选择列表下方有一个链接,用于在ctools模式窗口中打开自定义表单以添加新值,并且在模式中成功提交表单时,节点表单选择将被替换为新值 <?php if (!empty($form_state['executed'])) { // Replace node form select if form submit was successful. module_lo

当使用非FAPI ajax方法替换选择列表时,试图找出如何解决非法选择被检测到的错误

范例 在节点创建表单上,选择列表下方有一个链接,用于在ctools模式窗口中打开自定义表单以添加新值,并且在模式中成功提交表单时,节点表单选择将被替换为新值

  <?php
  if (!empty($form_state['executed'])) {
    // Replace node form select if form submit was successful.
    module_load_include('inc', 'node', 'node.pages');
    $node_form = node_add('photo');
    $new_field = drupal_render($node_form[$field]);
    $output = array();
    $output[] = ajax_command_replace($selector, $new_field);
    $output[] = ctools_modal_command_dismiss();
  }
  print ajax_render($output);
是否有更好的方法来替换选择列表以避免非法选择错误,或者我是否应该检查是否存在带有$form_state['rebuild']的文件模块错误?我找不到任何关于如何从另一个表单触发$form ajax事件的文档,作为一种可能的替代方法。我不确定这是否可行。
欢迎提供任何指导。

在节点表单选择字段中,添加“已验证”=>TRUE。您必须在自定义模块中更改节点形式:

mymodule_form_photo_node_form_alter (& $form, & $state)
{
  // Replace 'field_name' with whatever the name of the select field is
  $form['field_name']['#validated'] = TRUE;
}

我知道这个问题是一年前提出的,但希望这能帮助其他人寻找答案。

在节点表单选择字段中,添加'validated'=>TRUE。您必须在自定义模块中更改节点形式:

mymodule_form_photo_node_form_alter (& $form, & $state)
{
  // Replace 'field_name' with whatever the name of the select field is
  $form['field_name']['#validated'] = TRUE;
}
我知道这个问题是一年前提出的,但希望这能帮助其他人寻找答案