我有一个模块,当用户单击链接时,我会在对话框中加载一个新表单,该表单具有启用 Ajax 的提交按钮。在我的对话框中,我不希望显示整个 drupal 页眉和页脚等。我所展示的只是那个新表格的内容。所以我的表单是通过 json 输出的,如下所示:
$json['html'] = drupal_render(drupal_get_form('my_form'));
drupal_json_output($json);
像我想要的那样工作,并且只显示表单内容。但是,当这种情况发生时,该表单中启用 ajax 的提交按钮不会通过 ajax 提交。相反,它像普通按钮一样提交并将我带到另一个页面上的相同表单。
如果我有正常输出和显示的表单,带有页眉和页脚,如下所示:
$output = drupal_get_form('my_form');
return $output;
一切正常,我的提交按钮是“启用 ajax”的。
我想,也许是因为我正在加载新内容,而行为并没有附加到这些新的表单内容上。所以在我的 js 文件中,我也这样做了:
$('a.my_link', context).click(function() {
//processing done here
$('#my_modal_dialog').html(jsondata['html']);
}, "json");
Drupal.attachBehaviors($('#my_modal_dialog'));
那个小小的补充,也没有解决问题。我想知道为什么,如果表单正常输出,按钮作为ajax按钮工作,而当只显示表单内容时,ajax不起作用。
希望有人能得到答案...在此先感谢。