After I render/generate a part of my form (radios) with an ajax callback (from a another radios), I am unable to define the #default_value attribute of that generated radio.

Also when I validate the form and there are errors, the form doesn't keep the previously selected radios(from the ajax generated).

I guess both are related, this ajax seems to mess with it, it's working fine without it.

I've read there are bugs with the ajax callback + form but what is the workaround? I've seen couple of "solution" but they were not working in my case.

EDIT: I've been using this solution in the meantime, which works fine.

//I use this in my ajax callback making the generated radio to set the default value to 0, or change the array(0) by array($yourDefaultValue)
$commands[] = ajax_command_invoke('#id', 'myfunction', /* array(0) */);

//used to keep the values in the validation form (in the end if it)
drupal_add_js("jQuery(document).ready(function () {  jQuery.fn.myfunction( $myVariable); })","inline");

//custom js file
$.fn.vtoolsRefresh = function(myVariable) {
   //get the selected values from the validation form
   if(typeof myVariable !== "undefined" ){
     $('#radio-id input[value='+myVariable+']').click();
     //default value set to 0
      $('#radio-id input[value=0]').click();
  • Have you tried $form_state['rebuild'] =true? – Viraj Feb 17 '16 at 12:17
  • Yes, but still not working :( – GwenM Feb 17 '16 at 13:10
  • I found a workaround, see the edit. – GwenM Feb 17 '16 at 15:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.