Skip to content

Commit

Permalink
Fix #20198: Boolean values of the value HTML attribute are now conv…
Browse files Browse the repository at this point in the history
…erted to integer values
  • Loading branch information
s1lver committed Jun 17, 2024
1 parent 140570d commit 0e50cee
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 1 deletion.
1 change: 1 addition & 0 deletions framework/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Yii Framework 2 Change Log
- Bug #16116: Codeception: oci does not support enabling/disabling integrity check (@terabytesoftw)
- Bug #20191: Fix `ActiveRecord::getDirtyAttributes()` for JSON columns with multi-dimensional array values (brandonkelly)
- Bug #20175: Fix bad result for pagination when used with GridView (@lav45)
- Enh #20198: Boolean values of the `value` HTML attribute are now converted to integer values (@s1lver)


2.0.50 May 30, 2024
Expand Down
4 changes: 3 additions & 1 deletion framework/helpers/BaseHtml.php
Original file line number Diff line number Diff line change
Expand Up @@ -2003,8 +2003,10 @@ public static function renderTagAttributes($attributes)
$html = '';
foreach ($attributes as $name => $value) {
if (is_bool($value)) {
if ($value) {
if ($value && 'value' !== $name) {
$html .= " $name";
} elseif ('value' === $name) {
$html .= " $name=\"" . static::encode((int)$value) . '"';
}
} elseif (is_array($value)) {
if (in_array($name, static::$dataAttributes)) {
Expand Down
10 changes: 10 additions & 0 deletions tests/framework/helpers/HtmlTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1231,6 +1231,16 @@ public function testRenderTagAttributes()
$this->assertEquals('', Html::renderTagAttributes(['class' => []]));
$this->assertEquals(' style="width: 100px; height: 200px;"', Html::renderTagAttributes(['style' => ['width' => '100px', 'height' => '200px']]));
$this->assertEquals('', Html::renderTagAttributes(['style' => []]));
$this->assertEquals(' type="submit" value="1"', Html::renderTagAttributes(['type' => 'submit', 'value' => true]));
$this->assertEquals(' type="submit" value="0"', Html::renderTagAttributes(['type' => 'submit', 'value' => false]));
$this->assertEquals(
' type="submit" value="1" disabled',
Html::renderTagAttributes(['type' => 'submit', 'value' => true, 'disabled' => true])
);
$this->assertEquals(
' type="submit" value="0"',
Html::renderTagAttributes(['type' => 'submit', 'value' => false, 'disabled' => false])
);

$attributes = [
'data' => [
Expand Down

0 comments on commit 0e50cee

Please sign in to comment.