【问题标题】:drupal adding onchange event to node formdrupal将onchange事件添加到节点表单
【发布时间】:2010-05-18 08:08:57
【问题描述】:

您好,我需要知道如何将属性 onchange 添加到自定义 content_type 字段?

例如,我的 content_type 有 2 个字段 phone (name:field_phone[0][value], id:edit-field-phone-0-value),email (name:field_email[0][value], id:edit -field-email-0-value)。我无法添加如下属性。

 function knpevents_form_event_node_form_alter(&$form, &$form_state) { 

   $form['title']['#attributes'] = array('onchange' => "return titlevalidate(0)");//fine
   $form['field_phone[0][value]']['#attributes']= array('onchange' => "return phonevalidate(0)"); //error
   $form['field_emai[0][value]']['#attributes']= array('onchange' => "return emailvalidate(0)"); //error
 }

如何添加

【问题讨论】:

    标签: drupal forms


    【解决方案1】:

    如this Book page 所述,使用 CCK 小部件更改表单需要进行更多调整。由于在hook_form_alter 期间,CCK 字段尚未处理。

    您的代码应该看起来像(我不确定emai 是否是故意拼写的):

    function knpevents_form_event_node_form_alter(&$form, &$form_state) { 
      $form['title']['#attributes'] = array(
          'onchange' => "return titlevalidate(0)"
          );
      $form['#after_build'][] = 'knpevents_form_event_node_form_cck_alter';
    }
    
    function knpevents_form_event_node_form_cck_alter($form, &$form_state) {
      $form['field_phone'][0]['value']['#attributes'] = array(
          'onchange' => "return phonevalidate(0)"
          );
      $form['field_emai'][0]['value']['#attributes'] = array(
          'onchange' => "return emailvalidate(0)"
          );
      return $form;
    }
    

    另外,我认为您不需要将return 放在那里。 titlevalidate(0); 应该没问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 2015-09-18
      • 1970-01-01
      • 1970-01-01
      • 2013-01-05
      • 2014-01-24
      相关资源
      最近更新 更多