首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 ># managed_file自定义表单字段上的ajax无法工作

# managed_file自定义表单字段上的ajax无法工作
EN

Drupal用户
提问于 2020-11-16 17:22:03
回答 1查看 1K关注 0票数 2

我有一个定制的Drupal 8表单,它使用一个带有#ajax回调的managed_file字段,但是ajax回调从未被调用过(下面的例子)。我认为这是因为托管文件字段类型已经在使用ajax。有没有一种方法可以在我的自定义模块中实现自己的ajax回调,以便在托管文件自己的ajax完成后触发?

代码语言:javascript
复制
 $form['file'] = array(
      '#title' => t('Image File'),
      '#type' => 'managed_file',
      '#required' => TRUE,
      '#upload_location' => 'private://',
      '#multiple' => FALSE,

      '#upload_validators'    => [
        'file_validate_is_image'      => array(),
        'file_validate_extensions'    => array('jpg png psd ai bmp eps jpeg pdf tif tiff'),
        'file_validate_size'          => array(56600000)
      ],

      '#ajax' => [
        'callback' => array($this, 'myAjaxCallback'),
        'event' => 'change',
        'wrapper' =>  'im-area',
        'progress' => array(
          'type' => 'throbber',
          'message' => t('Choose City'),
        ),
      ],
    );
EN

回答 1

Drupal用户

回答已采纳

发布于 2020-11-16 20:35:46

我认为您不能将多个ajax回调附加到一个表单元素。但是,您可以通过扩展核心元素来覆盖回调:

/src/Element/MyManagedFile.php

代码语言:javascript
复制
addCommand(new AlertCommand('Hello!!!'));
    return $response;
  }

}

然后在自定义表单中使用它:

代码语言:javascript
复制
 $form['file'] = array(
      '#title' => t('Image File'),
      '#type' => 'my_managed_file',
票数 5
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/298198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档