From 4a8bd53f85b2dc0bcddd415873ce4ab49e1e099c Mon Sep 17 00:00:00 2001 From: "ctrlaltca@gmail.com" <> Date: Sun, 5 Feb 2012 17:00:00 +0000 Subject: Make validators' FocusOnError play nice with TCheckBoxList and TRadioButtonList --- framework/Web/UI/WebControls/TBaseValidator.php | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'framework/Web/UI/WebControls/TBaseValidator.php') diff --git a/framework/Web/UI/WebControls/TBaseValidator.php b/framework/Web/UI/WebControls/TBaseValidator.php index 6e4e8f71..30320c5f 100644 --- a/framework/Web/UI/WebControls/TBaseValidator.php +++ b/framework/Web/UI/WebControls/TBaseValidator.php @@ -416,7 +416,18 @@ abstract class TBaseValidator extends TLabel implements IValidator public function getFocusElementID() { if(($id=$this->getViewState('FocusElementID',''))==='') - $id=$this->getValidationTarget()->getClientID(); + { + $target=$this->getValidationTarget(); + /* Workaround: TCheckBoxList and TRadioButtonList nests the actual + * inputs inside a table; we ensure the first input gets focused + */ + if($target instanceof TCheckBoxList && $target->getItemCount()>0) + { + $id=$target->getClientID().'_c0'; + } else { + $id=$target->getClientID(); + } + } return $id; } -- cgit v1.2.3