私は以下のフォーム機能を持っています。私の問題は、フォームを提出するときですが、エラーメッセージが表示されません(赤色に強調表示されています)。それはウォッチドッグテーブルにログインするので、コード内のその時点に達しています。form_set_error not working
//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");
}
}
赤色のフィールドのみが強調表示されます。エラーメッセージは表示されません。 –
万が一、テンプレートファイルやテーマの前処理関数で 'drupal_get_form'を呼び出していますか? – Clive
いいえ、それはhook_menuから呼び出されています –