Skip to content

Commit

Permalink
inherit "disabled" attribute in internally rendered hidden fields in …
Browse files Browse the repository at this point in the history
…checkbox, radio, etc.
  • Loading branch information
rob006 committed Feb 13, 2016
1 parent 930ffe8 commit 711ab48
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 1 deletion.
2 changes: 1 addition & 1 deletion CHANGELOG
Expand Up @@ -4,7 +4,7 @@
Version 1.1.18 under development
--------------------------------

- no changes have been made yet.
- Bug #4015: Fixed bug with missing "disabled" attribute in internally rendered hidden fields (rob006)

Version 1.1.17 January 13, 2016
------------------------------
Expand Down
18 changes: 18 additions & 0 deletions framework/web/helpers/CHtml.php
Expand Up @@ -918,6 +918,8 @@ public static function radioButton($name,$checked=false,$htmlOptions=array())
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
else
$uncheckOptions=array('id'=>false);
if(!empty($htmlOptions['disabled']))
$uncheckOptions['disabled']=$htmlOptions['disabled'];
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
}
else
Expand Down Expand Up @@ -965,6 +967,8 @@ public static function checkBox($name,$checked=false,$htmlOptions=array())
$uncheckOptions=array('id'=>self::ID_PREFIX.$htmlOptions['id']);
else
$uncheckOptions=array('id'=>false);
if(!empty($htmlOptions['disabled']))
$uncheckOptions['disabled']=$htmlOptions['disabled'];
$hidden=self::hiddenField($name,$uncheck,$uncheckOptions);
}
else
Expand Down Expand Up @@ -1032,6 +1036,8 @@ public static function dropDownList($name,$select,$data,$htmlOptions=array())
if(isset($htmlOptions['unselectValue']))
{
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=self::hiddenField(substr($htmlOptions['name'],0,-2),$htmlOptions['unselectValue'],$hiddenOptions);
unset($htmlOptions['unselectValue']);
}
Expand Down Expand Up @@ -1852,6 +1858,8 @@ public static function activeFileField($model,$attribute,$htmlOptions=array())
// add a hidden field so that if a model only has a file field, we can
// still use isset($_POST[$modelClass]) to detect if the input is submitted
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
return self::hiddenField($htmlOptions['name'],'',$hiddenOptions)
. self::activeInputField('file',$model,$attribute,$htmlOptions);
}
Expand Down Expand Up @@ -1891,6 +1899,8 @@ public static function activeRadioButton($model,$attribute,$htmlOptions=array())
$uncheck='0';

$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';

// add a hidden field so that if the radio button is not selected, it still submits a value
Expand Down Expand Up @@ -1933,6 +1943,8 @@ public static function activeCheckBox($model,$attribute,$htmlOptions=array())
$uncheck='0';

$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=$uncheck!==null ? self::hiddenField($htmlOptions['name'],$uncheck,$hiddenOptions) : '';

return $hidden . self::activeInputField('checkbox',$model,$attribute,$htmlOptions);
Expand Down Expand Up @@ -1995,6 +2007,8 @@ public static function activeDropDownList($model,$attribute,$data,$htmlOptions=a
if(isset($htmlOptions['unselectValue']))
{
$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=self::hiddenField(substr($htmlOptions['name'],0,-2),$htmlOptions['unselectValue'],$hiddenOptions);
unset($htmlOptions['unselectValue']);
}
Expand Down Expand Up @@ -2103,6 +2117,8 @@ public static function activeCheckBoxList($model,$attribute,$data,$htmlOptions=a
$uncheck='';

$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';

return $hidden . self::checkBoxList($name,$selection,$data,$htmlOptions);
Expand Down Expand Up @@ -2163,6 +2179,8 @@ public static function activeRadioButtonList($model,$attribute,$data,$htmlOption
$uncheck='';

$hiddenOptions=isset($htmlOptions['id']) ? array('id'=>self::ID_PREFIX.$htmlOptions['id']) : array('id'=>false);
if(!empty($htmlOptions['disabled']))
$hiddenOptions['disabled']=$htmlOptions['disabled'];
$hidden=$uncheck!==null ? self::hiddenField($name,$uncheck,$hiddenOptions) : '';

return $hidden . self::radioButtonList($name,$selection,$data,$htmlOptions);
Expand Down

0 comments on commit 711ab48

Please sign in to comment.