Рейтинг:0

Как отключить кнопку отправки после вызова OpenModalDialogCommand в обратном вызове Ajax?

флаг us

У меня есть блок с кнопкой, при нажатии на эту кнопку запускается ajax, который показывает всплывающее окно с событием OpenModalDialogCommand, после закрытия всплывающего окна я хочу деактивировать кнопку отправки, кто-нибудь знает, как это сделать?

Форма

    $form['actions']['submit'] = массив(
      '#type' => 'отправить',
      '#value' => $this->t('Получить купон'),
      '#prefix' => '<div id="cupon_form_wrapper">',
      '#суффикс' => '</div>',
      '#attributes' => $results > 0 ? массив('отключено' => 'отключено'): [],
      '#ajax' => массив(
        'обратный вызов' => '::_modal_form_cupon_ajax_submit',
        'событие' => 'щелчок'
      ),
    ); 
функция _modal_form_cupon_ajax_submit (массив $ form, FormStateInterface & $ form_state) {
    $response = новый AjaxResponse();
    если ($form_state->getErrors()) {
      сбросить ($ форма ['# префикс']);
      не установлен ($ форма ['# суффикс']);
      $form['status_messages'] = [
        '#type' => 'status_messages',
        '#вес' => -10,
      ];
      $response->addCommand(new HtmlCommand('#cupon_form_wrapper', $form));
    }
    еще {
      $content = 'Лорем ipsum';
      $title = 'Скачать';
      $response = новый AjaxResponse();
      $ответ->добавитькоманду(
        новая команда OpenModalDialogCommand (
          $ название,
          $контент,
          множество(
            'ширина'=>'300'
          )
        ),
        $форма
      );
    }

    вернуть $ответ;
}
Рейтинг:0
флаг cn

Its as simple as adding an extra Command to your AjaxResponse class.

Something like this should work. Make sure you change the css selector (first argument) so it matches your button (or form).

$response->addCommand(new InvokeCommand('.button-selector', 'hide', []));
флаг us
Спасибо, вы дали мне подсказку, как мне это сделать, я использую это: $form['actions']['submit'] = массив( '#type' => 'отправить', '#value' => $this->t('Получить купон'), '#префикс' => '', '#атрибуты' => ['отключено' => 'отключено'], ); $response->addCommand(new HtmlCommand('#cupon_form_wrapper', $form));

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.