我正在尝试使用ajax根据您在某些单选按钮上做出的选择,使某些表单元素变得可见或不可见。
有两种选择:无线电的“标签”或“表格”。 “tag”是默认值,并且正文字段可见。但是如果你单击“表单”选项而不是正文字段消失。然后我希望能够再次单击“标记”并再次显示正文字段,但它在这里遇到了麻烦。
以下是相关代码:
function format_and_filter_form_protocol_node_form_alter(&$form, &$form_state,$form_id) {
$form['protocol_form_view_radios'] = array(
'#type' => 'radios',
'#title' => 'Input by:',
'#options' => array('taging','form'),
'#default_value' => 0,
'#ajax' => array(
'callback' => 'format_and_filter_change_input_callback',
'wrapper' => 'body-add-more-wrapper',
),
'#executes_submit_callback' => FALSE,
'#limit_validation_errors' => array(),
'#weight' => -31,
);
}
function format_and_filter_change_input_callback($form,&$form_state) {
if ($form_state['input']['protocol_form_view_radios'] == 0) {
$form['body']['#access'] = TRUE;
}
else {
$form['body']['#access'] = FALSE;
}
return $form['body'];
}
有没有人有任何解释为什么$ form ['body'] ['#access'] = TRUE不会再使身体字段可见? 我检查了$ form数组,看到当$ form_state ['input'] ['protocol_form_view_radios'] == 0为真时,$ form ['body'] ['#access']实际设置为1。
答案 0 :(得分:0)
#ajax回调中有一个任性的空间
'callback' => 'format_and_filter_change_inpu t_callback',
你的代码中是否也有这个?