function form_process_checkbox

Sets the #checked property of a checkbox element.

Related topics

1 string reference to 'form_process_checkbox'
system_element_info in modules/system/system.module
Implements hook_element_info().

File

includes/form.inc, line 3303

Code

function form_process_checkbox($element, $form_state) {
    $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;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.