From f64d00bdf04682a62f7bcfd3505d088e3e864ee0 Mon Sep 17 00:00:00 2001 From: Nikola Kovacs Date: Wed, 13 May 2015 14:16:21 +0200 Subject: [PATCH] Fix client-side trim validator. Subsequent validators now use the trimmed value instead of the original value. fixes #7707 --- framework/CHANGELOG.md | 1 + framework/assets/yii.validation.js | 4 +++- framework/validators/FilterValidator.php | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 487c54c..38b730f 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -4,6 +4,7 @@ Yii Framework 2 Change Log 2.0.5 under development ----------------------- +- Bug #7707: client-side `trim` validator now passes the trimmed value to subsequent validators (nkovacs) - Bug #8322: `yii\behaviors\TimestampBehavior::touch()` now throws an exception if owner is new record (klimov-paul) diff --git a/framework/assets/yii.validation.js b/framework/assets/yii.validation.js index 44901db..45d54f1 100644 --- a/framework/assets/yii.validation.js +++ b/framework/assets/yii.validation.js @@ -237,8 +237,10 @@ yii.validation = (function ($) { var $input = $form.find(attribute.input); var value = $input.val(); if (!options.skipOnEmpty || !pub.isEmpty(value)) { - $input.val($.trim(value)); + value = $.trim(value); + $input.val(value); } + return value; }, captcha: function (value, messages, options) { diff --git a/framework/validators/FilterValidator.php b/framework/validators/FilterValidator.php index d2d3cb7..b9a7464 100644 --- a/framework/validators/FilterValidator.php +++ b/framework/validators/FilterValidator.php @@ -89,6 +89,6 @@ class FilterValidator extends Validator ValidationAsset::register($view); - return 'yii.validation.trim($form, attribute, ' . json_encode($options, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . ');'; + return 'value = yii.validation.trim($form, attribute, ' . json_encode($options, JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE) . ');'; } }