public static function Checkbox::processCheckbox

public static Checkbox::processCheckbox(&$element, FormStateInterface $form_state, &$complete_form)

Sets the #checked property of a checkbox element.

File

core/lib/Drupal/Core/Render/Element/Checkbox.php, line 110

Class

Checkbox
Provides a form element for a single checkbox.

Namespace

Drupal\Core\Render\Element

Code

public static function processCheckbox(&$element, FormStateInterface $form_state, &$complete_form) {
  $value = $element['#value'];
  $return_value = $element['#return_value'];
  // On form submission, the #value of an available and enabled checked
  // checkbox is #return_value, and the #value of an available and enabled
  // unchecked checkbox is integer 0. On not submitted forms, and for
  // checkboxes with #access=FALSE or #disabled=TRUE, the #value is
  // #default_value (integer 0 if #default_value is NULL). Most of the time,
  // a string comparison of #value and #return_value is sufficient for
  // determining the "checked" state, but a value of TRUE always means checked
  // (even if #return_value is 'foo'), and a value of FALSE or integer 0
  // always means unchecked (even if #return_value is '' or '0').
  if ($value === TRUE || $value === FALSE || $value === 0) {
    $element['#checked'] = (bool) $value;
  }
  else {
    // Compare as strings, so that 15 is not considered equal to '15foo', but
    // 1 is considered equal to '1'. This cast does not imply that either
    // #value or #return_value is expected to be a string.
    $element['#checked'] = ((string) $value === (string) $return_value);
  }
  return $element;
}

© 2001–2016 by the original authors
Licensed under the GNU General Public License, version 2 and later.
Drupal is a registered trademark of Dries Buytaert.
https://api.drupal.org/api/drupal/core!lib!Drupal!Core!Render!Element!Checkbox.php/function/Checkbox::processCheckbox/8.1.x