我有以下表格功能。我的问题是当我提交表单时,我没有看到错误消息(虽然它突出显示为红色)。它确实登录了看门狗表,所以我知道它已经到了代码中的那一点。
//Inside hook menu
$items['resume/joblist'] = array(
'page callback' => 'drupal_get_form',
'page arguments' => array("ac_resume_job_list_form"),
'access arguments' => array('view joblist'),
'title' => 'Job List',
'description' => 'Job List',
);
function ac_resume_job_list_form($form, &$form_state)
{
$form['display_options'] = array(
'#type' => 'fieldset',
'#title' => 'Display Options',
'#attributes' => array("style" => "width:250px"),
);
$form['display_options']['limit'] = array(
'#type' => 'textfield',
'#title' => 'Limit',
'#size' => 2,
);
$form['display_options']['submit'] = array(
'#type' => 'submit',
'#value' => 'Change Display',
);
return $form;
}
function ac_resume_job_list_form_validate($form, &$form_state)
{
if ($form_state['values']['limit'] <= 0 || !is_int($form_state['values']['limit']))
{
watchdog('ac_resume', 'Display option error'); //THIS SHOWS IN ERROR LOG
form_set_error('limit', "Limit must be a positive number");
}
}
答案 0 :(得分:3)
据我所知,当父元素上有#tree
属性时,您只需要使用'display_options][limit'
语法,我只是将您的代码放入测试网站,您只需要更改代码以改为使用'limit'
:
form_set_error('limit', "Limit must be a positive number");
这对我来说很好。
答案 1 :(得分:0)
我在某处读到如果你突出显示了表单元素,但错误消息没有显示,那么你的自定义主题probaly不包含该页面上的$ messages变量,因此它无法显示....
答案 2 :(得分:0)
你是什么意思:“虽然它突出显示为红色。”它确实登录了看门狗表,所以我知道它已经达到了代码中的那一点。“
消息可能在那里,但你的主题/ css正在隐藏它; - )。