AJAX не меняются поля типа checkbox и date_popup

Главные вкладки

Аватар пользователя kavbank kavbank 6 декабря 2016 в 18:30

Добрый день.
В форме с множеством полей не получается заменить значения value у полей типа checkbox и date_popup .

Делаю на форме :

<?php
$form
['#prefix'] = '<div id="epec-sm-wrapper">';
$form['#suffix'] = '</div>';

 

$form['find']['load'] = array(
  
'#type' => 'submit',
  
'#value' => 'V',
  
'#line_index' => 0,
  
'#attributes' => array('class' => array('btn-primary')),  
  
'#bootstrap_size_this' => 1,   
  
'#description' => 'Данные по организации',
  
'#ajax' => array(      
      
'callback' => 'epec_sm_org_ajax_callback',    
      
'wrapper' => 'epec-sm-wrapper'
      
'method' => 'replace',
      
'effect' => 'fade',
      ),
   );

/// окончание формирование формы

/**
 * Ajax callback.
 */

function epec_sm_org_ajax_callback(&$form, &$form_state) {
  return 
$form;
}

?>

Само изменение значений полей делаю в hook_form_validate :

$form['line1']['proverka']['#value'] = 1;
$form['line3']['dt_open']['#value'] = date( 'Y-m-d');

При этом поля textfield прекрасно изменяются .
В чем прикол?

Комментарии

Аватар пользователя postgres postgres 9 декабря 2016 в 19:30

Возвращать надо не $form - а контейнер, в котором происходит замена, а ты всю форму реплэйсишь.
Как то очень широко. Не думашь что отсюда и грабли?

Аватар пользователя kavbank kavbank 10 декабря 2016 в 16:17

Как то очень широко. Не думашь что отсюда и грабли?>

А кто измеряет ширину и где грань? )))) . Задача стоит заменить по кнопке более 20 элементов на форме. При этом поля типа textfield,select меняются аж бегом. А вот checkbox и date_popup ни в какую.

Аватар пользователя gun_dose gun_dose 10 декабря 2016 в 16:30

У чекбоксов нет #value - оно есть только на опциях чекбокса. В вашем случае в $form чекбоксам нужно выставить #default_value