Поле выбора не разрушается после выбора элемента и запуска события onjage ajax - PullRequest
0 голосов
/ 14 октября 2011

Я использую стандартный D7 Ajax API для загрузки / изменения элементов формы.

Итак, что я пытаюсь получить:

Сделать 3 зависимых поля выбора. То есть когда выбрано значение из первого, второе и третье изменятся. Третье поле выбора зависит от второго.

Все работает нормально во всех браузерах, кроме Opera for Win [без проблем с Linux] (я использую v11.51). Когда вы выбираете элемент (в Opera) из поля выбора, он не сворачивается, хотя событие ajax запускается и данные загружаются успешно.

Есть ли способ свернуть окно выбора после события, если оно сработало?

Вот код php для формы:

  $form['type'] = array(
    '#type' => 'select',
    '#options' => _bp_filter_get_types(),
    '#attributes' => array('onReady' => "alert('Hello!');return false;"),
    '#prefix' => '<p>',
    '#suffix' => '</p>',
    '#ajax' => array(
      'callback' => 'bp_filters_header_group_js',
      'wrapper' => 'bp-filters-header-group',
      'method' => 'replace',
      'effect' => 'none',
      'progress' => array('type' => 'none'),
    ),
  );
  $form['brand'] = array(
    '#type' => 'select',
    '#options' => $brand_options,
    '#prefix' => '<span id="bp-filters-header-group"><p id="bp-filters-header-brand">',
    '#suffix' => '</p>',
    '#disabled' => $brand_disabled,
    '#ajax' => array(
      'callback' => 'bp_filters_header_group2_js',
      'wrapper' => 'bp-filters-header-group2',
      'method' => 'replace',
      'effect' => 'none',
      'progress' => array('type' => 'none'),
    ),
  );
  $form['series'] = array(
    '#type' => 'select',
    '#options' => _bp_filter_get_series($type_tid, $brand_tid),
    '#prefix' => '<span id="bp-filters-header-group2"><p id="bp-filters-header-series">',
    '#suffix' => '</p>',
    '#disabled' => $series_disabled,
    '#ajax' => array(
      'callback' => 'bp_filters_header_submit_js',
      'wrapper' => 'bp-filters-header-submit',
      'method' => 'replace',
      'effect' => 'none',
      'progress' => array('type' => 'none'),
    ),
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#attributes' => array('class' => $submit_classes),
    '#value' => '',
    '#prefix' => '<p id="bp-filters-header-submit">',
    '#suffix' => '</p></span></span>',
    '#disabled' => $submit_disabled,
  );

1 Ответ

0 голосов
/ 14 октября 2011

Опера получила эту ошибку, начиная с версии 10 для Windows. Я потратил 3 часа, боролся с этим и ничего не дал. Я думаю, что нет вменяемых способов победить = (

...