2010-05-18 67 views
1

您好我需要知道如何将onchange属性添加到自定义content_type字段?drupal将onchange事件添加到节点表单

对于ex ex我的content_type有2个字段phone(name:field_phone [0] [value],id:edit-field-phone-0-value),email(name:field_email [0] [value],id:编辑现场电子邮件0值)。我无法添加属性如下。

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 
} 

如何增加它

回答

2

改变与CCK部件的形式要求作为this Book page提到的更多的调整。由于在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);应该没问题。

+0

你的电子邮件,并不需要返回。谢谢你克里斯.... – ArK 2010-05-18 11:13:19