您可能可以使用“#attibutes”来做到这一点。
例如。
$form['id']['signature']['#attributes'] = array('onchange' => array('myFunction()'))
虽然我从不喜欢向 html 标签添加事件属性,但您也可以通过向表单添加内联(或外部)javascript 来实现,其行为如下:
$form['id']['signature'] = array(
'#type' => 'select',
'#options' => array(
0 => t('Browse...'),
1 => t('Sign...'),
2 => t('Clear...'),
),
'#attributes' => array(
'id' => array('signature-goes-here'),
),
);
$form['id']['signature']['#attached']['js'][] = array(
'data' => "
Drupal.behaviors.signature = function (context) {
$('#signature-goes-here', context).change(function () {
// Do stuff here.
});
}
",
'type' => 'inline',
);
但是,如果您想在此表单项更改时触发 ajax,您可能会使用 Drupal 表单 api 功能。