Drupal:在form_alter中将onchange代码添加到option_widgets?

时间:2010-01-29 13:02:11

标签: drupal alter

有谁知道如何将以下内容添加到form_alter中? 目前我有两个整数cck字段,使用php values命令从sql填充。

一个字段用于make,另一个字段用于模型。品牌和型号都是他们自己的节点类型。 Model有一个节点引用。

我想在Make下拉(CCK:INTEGER:SELECT)上做什么,正在改变,修改模型字段的内容。我已经制作了自己的定制表单,但它太过于操作并且想要使用基本的drupal节点编辑表单。

理想情况下,我希望能够将其传递给混音。     '#attributes'=> array('onchange'=>'populatemodels(this,\'edit-field-model \')')

是否有人知道在代码中执行此操作的方法?

在我的form_alter中添加属性不会在代码中产生任何onchanges:

#field_make (Array, 14 elements)

    *
      #type (String, 20 characters ) optionwidgets_select
    *
      #default_value (Array, 1 element)
          o
            0 (Array, 1 element)
                +
                  value (String, 1 characters ) 8
    *
      #required (String, 1 characters ) 1
    *
      #columns (Array, 1 element)
          o
            0 (String, 5 characters ) value
    *
      #title (String, 4 characters ) Make
    *
      #description (String, 0 characters )
    *
      #delta (Integer) 0
    *
      #field_name (String, 10 characters ) field_make
    *
      #type_name (String, 3 characters ) car
    *
      #tree (Boolean) TRUE
    *
      #weight (String, 2 characters ) -1
    *
      #access (Boolean) TRUE
    *
      #count (Integer) 9
    *
      #attributes (Array, 1 element)
          o
            onchange (String, 39 characters ) populatemodels(this,'edit-field-model')

谢谢 - 马特

1 个答案:

答案 0 :(得分:0)

我想我已经突破了。

CCK / options_widgets.module optionwidgets_select_process($ element,$ edit,& $ form_state,$ form){

此外,在我的form_alter代码中,我添加了

drupal_add_js( '位点/所有/模块/自适应/ adaptive.js');

其中包含populatemodels脚本

我修改了这段代码,以便将属性传递到下一步

$element[$field_key] = array(
    '#type' => 'select',
    '#title' => $element['#title'],
    '#description' => $element['#description'],
    '#required' => isset($element['#required']) ? $element['#required'] : $field['required'],
    '#multiple' => isset($element['#multiple']) ? $element['#multiple'] : $field['multiple'],
    '#options' => $options,
    '#default_value' => isset($element['#value'][$field_key]) ? $element['#value'][$field_key] : NULL,
    >>> '#attributes' => isset($element['#attributes']) ? $element['#attributes'] : NULL, <<
  );

添加'#attributes'=&gt; isset($ element ['#attributes'])? $ element ['#attributes']:NULL,onchange现在出现在呈现的代码中。