diff --git a/docs/guide/input-validation.md b/docs/guide/input-validation.md index 7bd8bc5..59c27f3 100644 --- a/docs/guide/input-validation.md +++ b/docs/guide/input-validation.md @@ -6,7 +6,7 @@ before putting it to good use. Given a [model](structure-models.md) populated with user inputs, you can validate the inputs by calling the [[yii\base\Model::validate()]] method. The method will return a boolean value indicating whether the validation -succeeds or not. If not, you may get the error messages from the [[yii\base\Model::errors]] property. For example, +succeeded or not. If not, you may get the error messages from the [[yii\base\Model::errors]] property. For example, ```php $model = new \app\models\ContactForm; @@ -22,7 +22,7 @@ if ($model->validate()) { } ``` -Behind the scene, the `validate()` method does the following steps to perform validation: +Behind the scenes, the `validate()` method does the following steps to perform validation: 1. Determine which attributes should be validated by getting the attribute list from [[yii\base\Model::scenarios()]] using the current [[yii\base\Model::scenario|scenario]]. These attributes are called *active attributes*. @@ -256,7 +256,7 @@ if ($validator->validate($email, $error)) { } ``` -> Note: Not all validators support such kind of validation. An example is the [unique](tutorial-core-validators.md#unique) +> Note: Not all validators support this type of validation. An example is the [unique](tutorial-core-validators.md#unique) core validator which is designed to work with a model only. If you need to perform multiple validations against several values, you can use [[yii\base\DynamicModel]] @@ -300,7 +300,7 @@ public function actionSearch($name, $email) } ``` -After validation, you can check if the validation succeeds or not by calling the +After validation, you can check if the validation succeeded or not by calling the [[yii\base\DynamicModel::hasErrors()|hasErrors()]] method, and then get the validation errors from the [[yii\base\DynamicModel::errors|errors]] property, like you do with a normal model. You may also access the dynamic attributes defined through the model instance, e.g., @@ -407,19 +407,19 @@ by calling `validateValue()`. ## Client-Side Validation Client-side validation based on JavaScript is desirable when end users provide inputs via HTML forms, because -it allows users to find out input errors faster and thus provides better user experience. You may use or implement +it allows users to find out input errors faster and thus provides a better user experience. You may use or implement a validator that supports client-side validation *in addition to* server-side validation. -> Info: While client-side validation is desirable, it is not a must. Its main purpose is to provide users better - experience. Like input data coming from end users, you should never trust client-side validation. For this reason, - you should always perform server-side validation by calling [[yii\base\Model::validate()]], like +> Info: While client-side validation is desirable, it is not a must. Its main purpose is to provide users with a better + experience. Similar to input data coming from end users, you should never trust client-side validation. For this reason, + you should always perform server-side validation by calling [[yii\base\Model::validate()]], as described in the previous subsections. ### Using Client-Side Validation -Many [core validators](tutorial-core-validators.md) support client-side validation out-of-box. All you need to do -is just to use [[yii\widgets\ActiveForm]] to build your HTML forms. For example, `LoginForm` below declares two +Many [core validators](tutorial-core-validators.md) support client-side validation out-of-the-box. All you need to do +is just use [[yii\widgets\ActiveForm]] to build your HTML forms. For example, `LoginForm` below declares two rules: one uses the [required](tutorial-core-validators.md#required) core validator which is supported on both client and server sides; the other uses the `validatePassword` inline validator which is only supported on the server side. @@ -590,7 +590,7 @@ JS; validation will not complete. For simplicity, the `deferred` array is equipped with a shortcut method `add()` which automatically creates a Deferred -object and add it to the `deferred` array. Using this method, you can simplify the above example as follows, +object and adds it to the `deferred` array. Using this method, you can simplify the above example as follows, ```php public function clientValidateAttribute($model, $attribute, $view) @@ -623,7 +623,7 @@ You can use AJAX-based validation in this case. It will trigger an AJAX request input while keeping the same user experience as the regular client-side validation. To enable AJAX validation for the whole form, you have to set the -[[yii\widgets\ActiveForm::enableAjaxValidation]] property to be `true` and specify `id` to be unique form identifier: +[[yii\widgets\ActiveForm::enableAjaxValidation]] property to be `true` and specify `id` to be a unique form identifier: ```php request->isAjax && $model->load(Yii::$app->request->post())) {