drupal добавление события onchange в форму узла - PullRequest
1 голос
/ 18 мая 2010

привет, мне нужно знать, как добавить атрибут onchange в настраиваемое поле content_type?

Например, у моего content_type есть 2 поля phone (имя: field_phone [0] [value], id: edit-field-phone-0-value), электронная почта (name: field_email [0] [value], id: edit -field-почта-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
 }

как добавить

1 Ответ

2 голосов
/ 18 мая 2010

Изменение форм с помощью виджетов 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); должно быть в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...