0
我想使用ajax使一些表單元素變得可見或不可見,根據您在某些單選按鈕上做出的選擇。形成無線電來控制可見/不可見的代碼元素(ajax)
有兩種選擇:無線電的「標籤」或「形式」。 「標籤」是默認的,並且主體字段在開始時是可見的。但是,如果您單擊「表單」選項,而不是身體領域消失。然後我希望能夠再次點擊「標籤」並使身體領域再次可見,但在這裏我遇到了麻煩。
下面是相關代碼:
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'];
}
沒有人有任何的解釋,爲什麼$形式[「身體」] [「#訪問」] = TRUE不會使人體場再次可見? 我檢查了$ form數組,並發現當$ form_state ['input'] ['protocol_form_view_radios'] == 0爲真時,$ form ['body'] ['#access']實際上被設置爲1。
不,這只是一個錯誤。 – numfar 2012-08-08 15:30:28