summaryrefslogtreecommitdiff
path: root/includes/form.inc
diff options
context:
space:
mode:
Diffstat (limited to 'includes/form.inc')
-rw-r--r--includes/form.inc12
1 files changed, 11 insertions, 1 deletions
diff --git a/includes/form.inc b/includes/form.inc
index c481a069f..2b88389d2 100644
--- a/includes/form.inc
+++ b/includes/form.inc
@@ -235,7 +235,17 @@ function _form_builder($form) {
$ref =& $ref[$parent];
}
if (!isset($form['#value'])) {
- $form['#value'] = ($posted && isset($edit)) ? $edit : $form['#default_value'];
+ if ($posted) {
+ if (isset($edit)) {
+ $form['#value'] = $edit; // normal element
+ }
+ elseif (isset($form['#return_value'])) {
+ $form['#value'] = 0; // checkbox unchecked
+ }
+ }
+ if (!isset($form['#value'])) {
+ $form['#value'] = $form['#default_value'];
+ }
}
if (isset($form['#execute'])) {
if ($_POST[$form['#name']] == $form['#value']) {