Drupal 7 表单设置错误不起作用
我有以下表单函数。我的问题是,当我提交表单时,我没有看到错误消息(尽管它以红色突出显示)。它确实登录到了watchdog表中,所以我知道它已经到达了代码中的那个点Drupal 7 表单设置错误不起作用,drupal-7,Drupal 7,我有以下表单函数。我的问题是,当我提交表单时,我没有看到错误消息(尽管它以红色突出显示)。它确实登录到了watchdog表中,所以我知道它已经到达了代码中的那个点 //Inside hook menu $items['resume/joblist'] = array( 'page callback' => 'drupal_get_form', 'page arguments' => array("ac_resume_job_list_form"), 'access arg
//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");
}
}
//内部钩子菜单
$items['resume/joblist']=数组(
“页面回调”=>“drupal获取表单”,
“页面参数”=>array(“ac\U resume\u job\u list\u form”),
“访问参数”=>数组(“查看作业列表”),
“标题”=>“作业列表”,
'说明'=>'作业列表',
);
函数ac_resume_job_list_form($form,&$form_state)
{
$form['display_options']=数组(
“#类型”=>“字段集”,
“#title”=>“显示选项”,
“#属性”=>数组(“样式”=>“宽度:250px”),
);
$form['display_options']['limit']=array(
“#键入”=>“文本字段”,
“#title”=>“Limit”,
“#大小”=>2,
);
$form['display_options']['submit']=array(
“#键入”=>“提交”,
“#值”=>“更改显示”,
);
返回$表格;
}
函数ac_resume_job_list_form_validate($form,&$form_state)
{
如果($form_state['values']['limit']据我所知,当父元素上有属性时,您只需要使用'display_options][limit'
语法,那么我已经将您的代码放入了一个测试站点,您只需要将代码改为使用'limit'
:
form_set_error('limit', "Limit must be a positive number");
这对我来说很好。我在某个地方读到,如果表单元素高亮显示,但错误消息没有显示,那么您的自定义主题可能不包含该页面上的$messages变量,因此它无法显示……。您的意思是:“它高亮显示为红色)。它确实会登录到watchdog表中,因此我知道它正在代码中达到该点。”
消息可能在那里,但您的主题/css正在隐藏它;-)。它只突出显示红色字段。它没有显示错误消息。您是否在模板文件或主题预处理函数中调用drupal\u get\u form
?不,它是从hook\u menuhmm调用的。您主题的page.tpl中的行有趣吗.php
文件?丢失了。我添加了它,现在它正在显示。谢谢!