Drupal 7 ajaxed选择字段出现“非法选择”错误(不使用Drupal FAPI ajax)
当使用非FAPI ajax方法替换选择列表时,试图找出如何解决非法选择被检测到的错误 范例 在节点创建表单上,选择列表下方有一个链接,用于在ctools模式窗口中打开自定义表单以添加新值,并且在模式中成功提交表单时,节点表单选择将被替换为新值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
<?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;
}
我知道这个问题是一年前提出的,但希望这能帮助其他人寻找答案