とにかく、電子メールフィールド、パスワード、数値フィールドなどのフォーム要素を自動的に検証するDrupalは、システムバリデーターをバインドすると言うことができますか?
$form['email] = array(
'#title' => t('Email'),
'#type' => 'textfield',
'#validate_as' => array('email', ...),
...
);
とにかく、電子メールフィールド、パスワード、数値フィールドなどのフォーム要素を自動的に検証するDrupalは、システムバリデーターをバインドすると言うことができますか?
$form['email] = array(
'#title' => t('Email'),
'#type' => 'textfield',
'#validate_as' => array('email', ...),
...
);
Drupalで数値フィールドを検証するには、次のようにします。
'#element_validate' => array('element_validate_number')
カスタム検証関数を作成する必要はありません。 http://api.drupal.org/api/drupal/includes%21form.inc/function/element_validate_number/7
リミアンは正しいことも間違っていることもあります。
Rimianが指摘しているように、を使用して任意の検証関数をフォームフィールドにアタッチできるのは良いことです#element_validate
。
ただし、値が次の場合など、最も一般的なものをテストするために呼び出すことができる一連のフォームAPI検証関数を認識していません。
valid_email_address
確認には使用できますが、検証エラーを発生させる関数が必要です)したがって、これを行うことはできますが、これらの検証関数を自分で作成する必要があるため、期待していたよりも少し手間がかかります。ただし、これを実行すると、で再利用できます#element_validate
。
これらの検証関数を作成するにはいくつかの作業が必要になるため、の使用#element_validate
は主に複雑な検証fx日付検証、場所検証などに集中しています。ほとんどの場合、その数などを検証する必要はありません(これは、ループを使用した通常の検証関数内で非常に簡単に実行できます)。ですから、これがあなたにとってどれほど役立つかはわかりませんが、それは間違いなく可能性です。
Form API Validationモジュールは、要求されたとおりに実行します:http: //drupal.org/project/fapi_validation
クライアント側の検証には、http://drupal.org/project/clientside_validation(Form API Validationによって提供されるルールを使用できます)もあります。
うん!
あまり実験していませんが。
http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6#element_validate
$form = array(
'#type' => 'fieldset',
'#title' => t('Input format'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
'#weight' => $weight,
'#element_validate' => array('filter_form_validate'),
);