0

这是一个 Drupal 表单问题。

我正在开发基于选定日期动态创建 3 个单选按钮行的 UI。我遇到的问题是,如果我选择了一些单选按钮并选择另一个日期来获取另一组单选按钮,那么第一个列表中的收音机会保持其选定状态并忽略“#default_value”属性。

我想要的是在选择新日期时取消选择所有动态创建的收音机。我现在能想到的唯一方法是为每组无线电创建一些唯一的密钥以在无线电名称中使用。

4

1 回答 1

0

这是创建单选按钮行的代码的一部分。对于 $result 中的每一行,我需要创建一行 4 个单选按钮。我还尝试将单选按钮的#default_value设置为之前选择的值。这对于初始提交来说很好,但是如果我进行更改并且不保存,并且想要获取原始选择的值,它会保留当前选择的值。

while ($my_data = db_fetch_object($result))
{   
  $form['opts'][$my_data->opt_id] = array(
    '#type' => 'radios',
    '#title' => t($my_data->option_name),
        '#options' => array(
         0 => 'N/A',
         1 => 'Yes', 
         2 => 'No',
         3 => 'Sometimes',
         ),
   );

   $form['opts'][$my_data->opt_id]['#default_value'] =  0;
   if($my_data->selected_opt_id != 0){
     $form['opts'][$my_data->opt_id]['#default_value'] =  $my_data->selected_opt_id;
   }
}

我最终做的是在每次请求列表时使用 JavaScript 设置默认值。我认为问题在于“ #default_value ”仅适用于控制表单的初始视图,而不能用于回发。任何人都可以确认吗?

于 2010-07-31T20:15:08.767 回答