我通过以下方式将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
}
但选择的Onchange处理程序未添加到dom中。
答案 0 :(得分:2)
googletorp说道。
这不是在drupal中向表单添加行为的方法。
drupal附带了一个非常好的JS api,它可以帮助你做到这一点。
大概你想要的是这样的东西。
Drupal.behaviors.myModuleBehavior = function(context) {
$('.title').change(function() {titleval() }) ;
$('.field_date1').change(function() {dateval()});
$('.field_city').change(function() {cityval()});
}