カスタムフォームモジュールを書いています。
Drupal7のFormAPIを使用してチェックボックスを作成し、その横に表示されるラベル/テキストをここで説明するように設定します
http://api.drupal.org/api/drupal/developer!topics!forms_api_reference.html/7#checkbox
#titleプロパティを使用して、
$form['test'] = array(
'#type' => 'checkbox',
'#title' => t('This is the text that gets displayed next to the checkbox'),
'#required' => TRUE,
);
次にブラウザに表示されます
[ ] This is the text that gets displayed next to the checkbox
たとえば、そのチェックボックスに関連する送信エラーがあります。上記の例では必須であるがチェックされていない場合、次のようなコンテンツ領域の上部にエラーボックスが表示されます。
"X The This is the text that gets displayed next to the checkbox field is required"
表示されたエラーメッセージをラベル/テキスト以外のものに変更したい。たとえば、エラーの場合、
"X Selecting the displayed checkbox is required."
または
"X You forgot to check the required checkbox. Please try again."
エラーメッセージテキストを、割り当てられたラベル/テキストと異なるように設定するにはどうすればよいですか?
カスタムモジュールで基本的なフォームを使用する:
function customform_demo($form, $form_state) {
$form['test'] = array(
'#type' => 'checkbox',
'#title' => t('This is the text that gets displayed next to the checkbox'),
'#required' => TRUE,
);
$form['test_submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $form;
}
フォーム検証関数でカスタムエラーメッセージを設定できます。これは、いくつかのコメント付きの基本的な例です。
function customform_demo_validate($form, &$form_state) {
// Test for existing form errors
if (form_get_errors()) {
// Save errors
$form_errors = form_get_errors();
$drupal_errors = drupal_get_messages('error');
// Clear form errors
form_clear_error();
foreach($drupal_errors['error'] as $key => $error) {
if (in_array($error, $form_errors)) {
// Unset form errors
unset($drupal_errors['error'][$key]);
}
}
// Rebuild drupal errors
foreach($drupal_errors['error'] as $key => $message) {
drupal_set_message($message, 'error');
}
// Validate form field and set error message
if ( $form_state['values']['test'] === 0 ) {
form_set_error('test', t('You forgot to check the required checkbox. Please try again.'));
}
// Add more validation tests and error messages
}
}