您需要知道如何将属性onchange添加到自定义content_type字段吗?
对于ex我的content_type有2个字段phone(名称:field_phone [0] [value],id:edit-field-phone-0-value),email(名称: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
}
如何添加
答案 0 :(得分: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);
应该做得很好。