Use HTML to pass unchecked checkboxes/switches. Refs #648
This commit is contained in:
parent
182bb01167
commit
71f9df8e13
|
|
@ -693,12 +693,10 @@ class Form extends WidgetBase
|
|||
$data = [];
|
||||
|
||||
/*
|
||||
* Boolean fields (checkbox, switch) won't be present value FALSE
|
||||
* Number fields should be converted to integers
|
||||
*/
|
||||
foreach ($this->fields as $field) {
|
||||
|
||||
if (!in_array($field->type, ['switch', 'checkbox', 'number']))
|
||||
if ($field->type != 'number')
|
||||
continue;
|
||||
|
||||
/*
|
||||
|
|
@ -706,11 +704,10 @@ class Form extends WidgetBase
|
|||
*/
|
||||
$parts = Str::evalHtmlArray($field->fieldName);
|
||||
$dotted = implode('.', $parts);
|
||||
$value = array_get($data, $dotted, 0);
|
||||
if ($field->type == 'number') {
|
||||
if (($value = array_get($data, $dotted)) !== null) {
|
||||
$value = !strlen(trim($value)) ? null : (float) $value;
|
||||
array_set($data, $dotted, $value);
|
||||
}
|
||||
array_set($data, $dotted, $value);
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
type="hidden"
|
||||
name="<?= $field->getName() ?>"
|
||||
value="0"
|
||||
<?= $this->previewMode ? 'disabled="disabled"' : '' ?>>
|
||||
<?= $this->previewMode ? 'disabled="disabled"' : '' ?>>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="<?= $field->getId() ?>"
|
||||
|
|
|
|||
|
|
@ -5,7 +5,12 @@
|
|||
<p class="help-block"><?= e(trans($field->comment)) ?></p>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
<label class="custom-switch" onclick="">
|
||||
<label class="custom-switch">
|
||||
<input
|
||||
type="hidden"
|
||||
name="<?= $field->getName() ?>"
|
||||
value="0"
|
||||
<?= $this->previewMode ? 'disabled="disabled"' : '' ?>>
|
||||
<input
|
||||
type="checkbox"
|
||||
id="<?= $field->getId() ?>"
|
||||
|
|
|
|||
Loading…
Reference in New Issue