From 59fdac54ff49ad8ee55349bd48f6540ab59b9de4 Mon Sep 17 00:00:00 2001 From: AnatolyRugalev Date: Tue, 8 Dec 2015 10:55:00 +0500 Subject: [PATCH] Added support of :submit[formtarget] --- framework/CHANGELOG.md | 2 ++ framework/assets/yii.activeForm.js | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/framework/CHANGELOG.md b/framework/CHANGELOG.md index 75b8ee7..ee93eb4 100644 --- a/framework/CHANGELOG.md +++ b/framework/CHANGELOG.md @@ -51,6 +51,7 @@ Yii Framework 2 Change Log - Enh #9562: Adds `char` datatype to framework (df2) - Enh #9604: `yii\db\BaseActiveRecord` now triggers event `EVENT_AFTER_REFRESH` after a record is refreshed (raoul2000) - Enh #9893: `yii.js` handleAction enhanced to support for data-form attribute, so links can trigger specific forms (SamMousa) +- Enh #10322: ActiveForm now respects formtarget attribute of submit button (AnatolyRugalev) - Enh #10451: Check of existence of `$_SERVER` in `\yii\web\Request` before using it (quantum13) - Enh #10487: `yii\helpers\BaseArrayHelper::index()` got a third parameter `$groupBy` to group the input array by the key in one or more dimensions (quantum13, silverfire, samdark) - Enh #10610: Added `BaseUrl::$urlManager` to be able to set URL manager used for creating URLs (samdark) @@ -211,6 +212,7 @@ Yii Framework 2 Change Log - Enh #10783: Added migration and unit-tests for `yii\i18n\DbMessageSource` (silverfire) - Enh #10797: Cleaned up requirements checker CSS (muhammadcahya) - Enh #11336: Allow resettting `$hostInfo`, `$scriptUrl`, and `$pathInfo` in `yii\web\Request` and `$baseUrl`, and `$hostInfo` in `yii\web\UrlManager` to `null`, to make Yii determine the value again (cebe) +- Enh #10322: `yii.activeForm.js` now respects the `formtarget` attribute of submit button (anatolyrugalev) - Enh: Added last resort measure for `FileHelper::removeDirectory()` fail to unlink symlinks under Windows (samdark) - Enh: `AttributeBehavior::getValue()` now respects the callable in array format (silverfire) - Chg #6419: Added `yii\web\ErrorHandler::displayVars` make list of displayed vars customizable. `$_ENV` and `$_SERVER` are not displayed by default anymore (silverfire) diff --git a/framework/assets/yii.activeForm.js b/framework/assets/yii.activeForm.js index 7b73763..4ce37e7 100644 --- a/framework/assets/yii.activeForm.js +++ b/framework/assets/yii.activeForm.js @@ -201,7 +201,8 @@ settings: settings, attributes: attributes, submitting: false, - validated: false + validated: false, + target: $form.attr('target') }); /** @@ -575,7 +576,14 @@ data.submitting = false; } else { data.validated = true; + var buttonTarget = data.submitObject ? data.submitObject.attr('formtarget') : null; + if (buttonTarget) { + // set target attribute to form tag before submit + $form.attr('target', buttonTarget); + } $form.submit(); + // restore original target attribute value + $form.attr('target', data.target); } } else { $.each(data.attributes, function () {