drupal选择cck onchange处理程序

drupal选择cck onchange处理程序,drupal,select,onchange,Drupal,Select,Onchange,我通过以下方式将onchange处理程序添加到所有cck字段中 function bday_form_event_node_form_alter(&$form, &$form_state) { $form['title']['#attributes'] = array('onchange' => "titleval()"); $form['#after_build'][] = 'bday_form_event_node_form_cck_alter'; } fun

我通过以下方式将onchange处理程序添加到所有cck字段中

function bday_form_event_node_form_alter(&$form, &$form_state) { 
  $form['title']['#attributes'] = array('onchange' => "titleval()");
  $form['#after_build'][] = 'bday_form_event_node_form_cck_alter';
}
function bday_form_event_node_form_cck_alter($form, &$form_state) {
  $form['field_date1'][0]['value']['#attributes'] = array('onchange' => "dateval()"); //Text Field
 $form['field_city']['#attributes'] = array('onchange' => "cityval()"); //Select Field
}

但是,Select的Onchange处理程序没有添加到dom中

以谷歌的话为基础

这不是在drupal中向表单添加行为的方法

drupal附带了一个非常好的工具,可以帮助您实现这一点

大概你想要的是这样的

Drupal.behaviors.myModuleBehavior = function(context) {
  $('.title').change(function() {titleval() }) ;
  $('.field_date1').change(function() {dateval()});
  $('.field_city').change(function() {cityval()});
}

为什么要将其添加到html中,而不使用.js文件/jQuery呢?