Answers:
假设您的表单更改功能实际上正在运行(您可以通过调用进行确认dsm()
),则实际上还需要再访问2个级别的数组才能访问field元素:
$form["field_accounts"][LANGUAGE_NONE][0]['value']['#default_value'] = $default;
在Drupal 7中,对于字段已翻译成的每种语言,都有一个数组值(以便满足具有多个/无限基数的字段),并且在每个字段下都位于数组中,用于各种不同的字段列。在大多数情况下,这将是“值”,但并非总是如此(例如,图像字段具有文件id列,alt列等)
希望能有所帮助
LANGUAGE_NONE
则应使用默认值
$form['#entity']->language
但是我必须检查一下,以便可以代替常量使用。)也会使用由$language
全局变量确定的当前语言,但是总有一些API方法可以帮助解决这一问题(field_get_items
甚至更好的是EntityMetadataWrapper
由实体模块提供)
$form["field_accounts"]["und"][0]["value"]['#default_value'] = $default;