CakePHPは、フィールドが空であるか、電子メールフィールドが実際に電子メールアドレスかどうかをチェックする、クライアントサイドフォームの検証を自動的に行います。フィールドが間違っていると、エラーメッセージが表示され、ちょっとしたプルダウンが表示されます。CakePHPクライアントサイドフォーム検証はどこにありますか?
これはどこに管理されていますか?この種の検証をconfirm_emailフィールドに追加したいと思います。
CakePHPは、フィールドが空であるか、電子メールフィールドが実際に電子メールアドレスかどうかをチェックする、クライアントサイドフォームの検証を自動的に行います。フィールドが間違っていると、エラーメッセージが表示され、ちょっとしたプルダウンが表示されます。CakePHPクライアントサイドフォーム検証はどこにありますか?
これはどこに管理されていますか?この種の検証をconfirm_emailフィールドに追加したいと思います。
$ this-> Form-> input( 'textfield'、array( 'required' => true));
は、私はあなたがについてHTML5 Form Validationを話していると思われるいくつかのHTMLrequiredフィールドに
を行います。
この場合、入力にrequired="required"
とtype="email"
のような属性があるため、このようなドロップダウンが表示されることがあります。
src/Model/Table/SomeTable.php
ファイル内で検証を管理することができます。 UsersTable.php
については下記の例を参照してください。
class UsersTable extends Table {
public function validationDefault(\Cake\Validation\Validator $validator) {
$validator->add('email', [
'email' => [
'rule' => array('email', true),
'message' => __('Please, set valid email address')
]
])
->add('password', [
'length' => [
'rule' => ['minLength', '8'],
'message' => __('Password must have at least 8 characters'),
]
])
->add('password_confirmation', [
'length' => [
'rule' => ['minLength', '8'],
'message' => __('Password must have at least 8 characters')
],
'compare' => [
'rule' => ['compareWith', 'password'],
'message' => __('Passwords should be the same'),
]
])
return $validator;
}
}
password
とpassword_confirmation
上の注意を払ってください。ルールcompareWith
を使用して同様に問題を解決することができます。
も参照してください。validationsについては、
あなたは正しいです。私はHTML5 Form Validationを指していました。私は以下のJavascriptで電子メールバリデーターを追加することができました。 var email = document.getElementById( "email"); var confirm_email = document.getElementById( "confirm-email"); function validateEmail(){ if(email.value!= confirm_email.value){ confirm_email.setCustomValidity( "Emails Do not Match"); } else { confirm_email.setCustomValidity( ''); } } confirm_email.onchange = validateEmail; – thekthuser
ああそうです。フロントエンドの検証では、[validate.js](https://validatejs.org/#validators-equality)のようなものを使用することを提案します。ある入力値が別のものと等しいことを検証するために使用できる 'equality'という名前のバリデーターがあります。ここでは、[example](https://validatejs.org/examples.html)の動作を示します。 – tsg
実際にはCakeとブラウザが混在しているため、さまざまなタグが追加された場合、ブラウザはHTML5検証をトリガーします(http://www.the-art-of-web.com/html/html5-form-validation ) CakePHPのフォームヘルパーは、データベースに基づいたこれらの追加を容易にします – Voycey
検証ルールはすべてに設定されています。Table.php –