Framework  3.9
RequiredCheckListValidator Class Reference

RequiredCheckList Validator. More...

+ Inheritance diagram for RequiredCheckListValidator:
+ Collaboration diagram for RequiredCheckListValidator:

Public Member Functions

 RequiredCheckListValidator ($field, $title, $min=1, $addEntry=true)
 
 writeClient ()
 
 validate ()
 
- Public Member Functions inherited from AbstractValidator
 AbstractValidator ($field, $title)
 

Public Attributes

 $min = ""
 
 $empty = ""
 
 $addEntry = false
 
 $msgText = "checkbox"
 
- Public Attributes inherited from AbstractValidator
 $field
 
 $title
 

Detailed Description

RequiredCheckList Validator.

Verifies min count of checkboxes checked

Add this validator the the script using: $form->validator->add(new RequiredCheckListValidator($field, $label, $min));

Definition at line 1285 of file validation.inc.

Member Function Documentation

◆ RequiredCheckListValidator()

RequiredCheckListValidator::RequiredCheckListValidator (   $field,
  $title,
  $min = 1,
  $addEntry = true 
)

Definition at line 1292 of file validation.inc.

1293  {
1294  $this->min = $min;
1295  $this->AbstractValidator($field, $title);
1296  $this->addEntry = $addEntry;
1297  if($min > 1)
1298  $this->msgText = pluralize($this->msgText);
1299  }
AbstractValidator($field, $title)
Definition: validation.inc:53
pluralize($text, $count=0)
Takes a singular string and makes it plural.
Definition: functions.inc:1428

◆ validate()

RequiredCheckListValidator::validate ( )

Reimplemented from AbstractValidator.

Definition at line 1343 of file validation.inc.

1344  {
1345  global $_POST;
1346 
1347  if ($this->readOnly) return "";
1348 
1349  $values = $_POST[$this->field];
1350 
1351  // convert array of checks to comma delimated string and
1352  // back again to eliminate blanks
1353  if (is_array($values))
1354  {
1355  $valueAnswer = implode(",", array_values($values));
1356  $count = count(explode(",", $valueAnswer));
1357  }
1358  elseif($values)
1359  $count = 1;
1360  else
1361  $count = 0;
1362 
1363  if ($this->addEntry AND isset($_POST["{$this->field}_addEntry"]))
1364  $count += 1;
1365 
1366  if ($count < $this->min)
1367  {
1368  return "You must check at least {$this->min} {$this->msgText} for {$this->title}.";
1369  }
1370  else
1371  {
1372  return "";
1373  }
1374  }

◆ writeClient()

RequiredCheckListValidator::writeClient ( )

Reimplemented from AbstractValidator.

Definition at line 1301 of file validation.inc.

1302  {
1303 $script = <<<ENDSCRIPT
1304 
1305  var i = 1;
1306  var countChecked = 0;
1307  var max = form["count_{$this->field}"].value;
1308  var fieldName;
1309 
1310  var pattern = new RegExp("^{$this->field}\\\\[.*?\\\\]$");
1311 
1312  for(i=0; i < form.elements.length; i++)
1313  {
1314  ctrl = form.elements[i];
1315  if (pattern.test(ctrl.name))
1316  {
1317  if (ctrl.checked == true)
1318  {
1319  countChecked++;
1320  }
1321  }
1322  }
1323 
1324  var addEntry = form["{$this->field}_addEntry"];
1325 
1326  if(addEntry && addEntry.value != "")
1327  {
1328  countChecked += 1;
1329  }
1330 
1331  if ({$this->min} > 0 && countChecked < {$this->min})
1332  {
1333  alert("You must check at least {$this->min} {$this->msgText} for {$this->title}.");
1334  return false;
1335  }
1336 
1337 ENDSCRIPT;
1338 
1339  return $script;
1340  }

Member Data Documentation

◆ $addEntry

RequiredCheckListValidator::$addEntry = false

Definition at line 1289 of file validation.inc.

◆ $empty

RequiredCheckListValidator::$empty = ""

Definition at line 1288 of file validation.inc.

◆ $min

RequiredCheckListValidator::$min = ""

Definition at line 1287 of file validation.inc.

◆ $msgText

RequiredCheckListValidator::$msgText = "checkbox"

Definition at line 1290 of file validation.inc.


The documentation for this class was generated from the following file: