diff options
Diffstat (limited to 'framework/Web/UI/WebControls/TRequiredFieldValidator.php')
-rw-r--r-- | framework/Web/UI/WebControls/TRequiredFieldValidator.php | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/framework/Web/UI/WebControls/TRequiredFieldValidator.php b/framework/Web/UI/WebControls/TRequiredFieldValidator.php index 8d370502..7a0bad8c 100644 --- a/framework/Web/UI/WebControls/TRequiredFieldValidator.php +++ b/framework/Web/UI/WebControls/TRequiredFieldValidator.php @@ -6,7 +6,7 @@ * @link http://www.pradosoft.com/ * @copyright Copyright © 2005-2013 PradoSoft * @license http://www.pradosoft.com/license/ - * @version $Id: TRequiredFieldValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $ + * @version $Id: TRequiredFieldValidator.php 3288 2013-04-30 10:36:50Z ctrlaltca $ * @package System.Web.UI.WebControls */ @@ -25,8 +25,11 @@ Prado::using('System.Web.UI.WebControls.TBaseValidator'); * Validation will also succeed if input is of TListControl type and the number * of selected values different from the initial value is greater than zero. * + * If the input is of TListControl type and has a {@link TListControl::setPromptValue PromptValue} + * set, it will be automatically considered as the validator's {@link setInitialValue InitialValue}. + * * @author Qiang Xue <qiang.xue@gmail.com> - * @version $Id: TRequiredFieldValidator.php 3245 2013-01-07 20:23:32Z ctrlaltca $ + * @version $Id: TRequiredFieldValidator.php 3288 2013-04-30 10:36:50Z ctrlaltca $ * @package System.Web.UI.WebControls * @since 3.0 */ @@ -43,16 +46,29 @@ class TRequiredFieldValidator extends TBaseValidator } /** - * @return string the initial value of the associated input control. Defaults to empty string. + * @return string the initial value of the associated input control. Defaults to empty string + * unless the control has a prompt value set. * If the associated input control does not change from this initial value * upon postback, the validation fails. */ public function getInitialValue() { - return $this->getViewState('InitialValue',''); + return $this->getViewState('InitialValue',$this->getControlPromptValue()); } /** + * @return string the initial value of the associated input control. Defaults to empty string. + * If the associated input control does not change from this initial value + * upon postback, the validation fails. + */ + protected function getControlPromptValue() + { + $control = $this->getValidationTarget(); + if($control instanceof TListControl) + return $control->getPromptValue(); + return ''; + } + /** * @param string the initial value of the associated input control. * If the associated input control does not change from this initial value * upon postback, the validation fails. |