【发布时间】:2011-10-26 08:27:27
【问题描述】:
所以我在表单中创建了我的复选框
$form['existing_customer'] = array(
'#type' => 'checkbox',
'#title' => t('Are you an existing customer'),
'#ajax' => array(
'callback' => 'checkbox_selected',
'wrapper' => 'subject',
),);
这会调用我的函数并更改复选框中的值
问题是如果未选中,我无法让它切换回来
function checkbox_selected(&$form, &$form_state) {
if ($form_state['values']['existing_customer'] == 1) {
$my_options = array( 'select' => t('Select'), 'mr' => t('Mr'), 'mrs' => t('Mrs'), 'miss' => t('Miss'), 'ms' =>t('Ms'), 'sir' =>t('Sir'), 'dr' => t('Dr'), 'prof' => t('Prof') );
}
elseif ($form_state['values']['existing_customer'] == 0){
$my_options = array( 'seconfZ' => t('jimmy'), 'mr' => t('Mr'), );
}
$form['subject'] = array(
'#type' => 'select',
'#title' => t('Subject'),
'#options' => $my_options//$form['subject_options']['#value']
);
return $form['subject'];
}
我以为我可以对复选框值或状态进行切换,但没有乐趣?
【问题讨论】:
-
你的回调真的被调用了吗?我没有将“回调”视为表单 API 中的属性,但确实看到了“#value_callback”
-
它被调用了,“#value_callback”是什么意思?
-
你用的是什么版本?我通常将此用作参考,而那是我没有看到它的地方,因此我不确定您的方法是否被调用,以及如果调用它应该返回什么。 api.drupal.org/api/drupal/…
标签: ajax forms api drupal checkbox