Framework  3.9
RequiredCrossReferenceSelectValidator Class Reference

RequiredCrossReferenceSelectValidator. More...

+ Inheritance diagram for RequiredCrossReferenceSelectValidator:
+ Collaboration diagram for RequiredCrossReferenceSelectValidator:

Public Member Functions

 RequiredCrossReferenceSelectValidator ($field, $title, $min=1)
 
 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

RequiredCrossReferenceSelectValidator.

Verifies min count of checkboxes checked

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

Definition at line 1386 of file validation.inc.

Member Function Documentation

◆ RequiredCrossReferenceSelectValidator()

RequiredCrossReferenceSelectValidator::RequiredCrossReferenceSelectValidator (   $field,
  $title,
  $min = 1 
)

Definition at line 1393 of file validation.inc.

1394  {
1395  $this->min = $min;
1396  $this->AbstractValidator($field, $title);
1397  $this->addEntry = $addEntry;
1398  if($min > 1)
1399  $this->msgText = pluralize($msgText);
1400  }
AbstractValidator($field, $title)
Definition: validation.inc:53
pluralize($text, $count=0)
Takes a singular string and makes it plural.
Definition: functions.inc:1428

◆ validate()

RequiredCrossReferenceSelectValidator::validate ( )

Reimplemented from AbstractValidator.

Definition at line 1437 of file validation.inc.

1438  {
1439  global $_POST;
1440 
1441  if ($this->readOnly) return "";
1442 
1443  if (isset($_POST[$this->field]))
1444  {
1445  $count = count($_POST[$this->field]);
1446  }
1447 
1448  if ($count < $this->min)
1449  {
1450  return "You must check at least {$this->min} {$this->msgText} for {$this->title}.";
1451  }
1452  else
1453  {
1454  return "";
1455  }
1456  }

◆ writeClient()

RequiredCrossReferenceSelectValidator::writeClient ( )

Reimplemented from AbstractValidator.

Definition at line 1402 of file validation.inc.

1403  {
1404  if($this->min == 0) return;
1405 
1406 $script = <<<ENDSCRIPT
1407 
1408  var i = 1;
1409  var countChecked = 0;
1410  var max = form["count_{$this->field}"].value;
1411 
1412  var pattern = new RegExp("^{$this->field}\\\\[.*?\\\\]$");
1413 
1414  for(i=0; i < form.elements.length; i++)
1415  {
1416  ctrl = form.elements[i];
1417  if (pattern.test(ctrl.name))
1418  {
1419  if (ctrl.checked == true)
1420  {
1421  countChecked++;
1422  }
1423  }
1424  }
1425 
1426  if (countChecked < {$this->min})
1427  {
1428  alert("You must check at least {$this->min} {$this->msgText} for {$this->title}.");
1429  return false;
1430  }
1431 ENDSCRIPT;
1432 
1433  return $script;
1434  }

Member Data Documentation

◆ $addEntry

RequiredCrossReferenceSelectValidator::$addEntry = false

Definition at line 1390 of file validation.inc.

◆ $empty

RequiredCrossReferenceSelectValidator::$empty = ""

Definition at line 1389 of file validation.inc.

◆ $min

RequiredCrossReferenceSelectValidator::$min = ""

Definition at line 1388 of file validation.inc.

◆ $msgText

RequiredCrossReferenceSelectValidator::$msgText = "checkbox"

Definition at line 1391 of file validation.inc.


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