2

我创建了一个实现 CCK 字段的模块。将字段添加到内容类型时,我已将值的数量设置为无限制,并将字段设置为必填。

有没有办法设置所需的值的数量?我需要用户输入 5 个或更多值。

先感谢您。

4

1 回答 1

1

答案就在 hook_form_alter() -- http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_form_alter/6

正如我所见,你需要做两件事:

  1. 更改表单项以在表单加载时包含 5 个条目(而不是通常的 2 个带有“添加更多”按钮)。

  2. 向表单添加一个 $form['#validate'] = 'my_form_validate' 条目以检查是否设置了至少 5 个。

1 可能有点挑战;我不确定表单第一次如何加载多个项目。但是,如果您在 $form 上执行 vardump,则可能很明显。

对于 2,它应该很简单——

function my_form_validate($form, &$form_state) {
  $i=0;
  foreach ($form_state['field_my_field_name']...) {
    if (isset(...)) { $i++; }
  }
  if ($i < 5) {
    form_set_error($form_state['field_my_field_name'], 'You must enter 5 foobars');
  }
}
于 2011-06-23T01:59:35.930 回答