Я создал поле мультизагрузки в моем узле, используя Мультизагрузочный виджет Filefield. Я использую код ниже, чтобы изменить форму узла по умолчанию.
Существует зависимое раскрывающееся поле на основе ajax в форме, то есть город, зависящий от страны. Когда я выбираю одну страну, форма работает нормально. Но когда я выбираю несколько значений из списка стран, я получаю следующую ошибку:
Был обнаружен незаконный выбор. Пожалуйста свяжитесь с администратором сайта.
Я получаю эту конкретную ошибку, когда присутствует элемент мультизагрузочной формы. Когда я удаляю элемент из $ form, он отлично работает с несколькими выбранными значениями.
Пожалуйста, помогите мне решить эту проблему. Спасибо заранее!
function mymodule_form_alter(&$form, &$form_state, $form_id) {
switch ($form_id) {
case 'mynode_node_form':
$country_list = load_countries();
$selected_country = (isset($form_state['values']['country'])) ? $form_state['values']['country'] : key($country_list);
$form['countries'] = array(
'#type' => 'select',
'#title' => t('Select Your Country'),
'#options' => $country_list,
'#default_value' => $selected_country ,
'#ajax' => array(
'callback' => 'city_dropdown_callback',
'wrapper' => 'city_wrapper',
),
'#multiple' => TRUE,
'#required' => TRUE,
);
$cities_list = load_cities($selected_country);
$selected_cities = (isset($form_state['values']['cities'])) ? $form_state['values']['cities'] : key($cities_list);
$form['cities'] = array(
'#type' => 'select',
'#title' => t('Select Your City'),
'#prefix' => '<div id="city_wrapper">',
'#suffix' => '</div>',
'#options' => $cities_list,
'#default_value' => $selected_cities,
'#multiple' => TRUE,
'#required' => TRUE,
);
}
}
function city_dropdown_callback($form,$form_state){
return $form['cities'];
}
Задача ещё не решена.
Других решений пока нет …