mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2024-11-15 11:28:25 +00:00
Don't set "required" attribute for checkboxes (unless explicitly specified).
Adding it prevents user from submitting form with checkbox unchecked when the "boolean" validation rule is specified for the field. Closes #3560
This commit is contained in:
parent
51946ff8fd
commit
82f34c4cb3
2 changed files with 25 additions and 1 deletions
|
@ -128,6 +128,7 @@ class Contact extends CakeTestModel {
|
||||||
'rule_on_create' => array('rule' => array('maxLength', 50), 'on' => 'create'),
|
'rule_on_create' => array('rule' => array('maxLength', 50), 'on' => 'create'),
|
||||||
'rule_on_update' => array('rule' => array('between', 1, 50), 'on' => 'update'),
|
'rule_on_update' => array('rule' => array('between', 1, 50), 'on' => 'update'),
|
||||||
),
|
),
|
||||||
|
'boolean_field' => array('rule' => 'boolean')
|
||||||
);
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -7279,6 +7280,28 @@ class FormHelperTest extends CakeTestCase {
|
||||||
'/div'
|
'/div'
|
||||||
);
|
);
|
||||||
$this->assertTags($result, $expected);
|
$this->assertTags($result, $expected);
|
||||||
|
|
||||||
|
$result = $this->Form->input('Contact.boolean_field', array('type' => 'checkbox'));
|
||||||
|
$expected = array(
|
||||||
|
'div' => array('class' => 'input checkbox required'),
|
||||||
|
array('input' => array(
|
||||||
|
'type' => 'hidden',
|
||||||
|
'name' => 'data[Contact][boolean_field]',
|
||||||
|
'id' => 'ContactBooleanField_',
|
||||||
|
'value' => '0'
|
||||||
|
)),
|
||||||
|
array('input' => array(
|
||||||
|
'type' => 'checkbox',
|
||||||
|
'name' => 'data[Contact][boolean_field]',
|
||||||
|
'value' => '1',
|
||||||
|
'id' => 'ContactBooleanField'
|
||||||
|
)),
|
||||||
|
'label' => array('for' => 'ContactBooleanField'),
|
||||||
|
'Boolean Field',
|
||||||
|
'/label',
|
||||||
|
'/div'
|
||||||
|
);
|
||||||
|
$this->assertTags($result, $expected);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1379,9 +1379,10 @@ class FormHelper extends AppHelper {
|
||||||
unset($options['default']);
|
unset($options['default']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$options += array('required' => false);
|
||||||
$options = $this->_initInputField($fieldName, $options) + array('hiddenField' => true);
|
$options = $this->_initInputField($fieldName, $options) + array('hiddenField' => true);
|
||||||
$value = current($this->value($valueOptions));
|
$value = current($this->value($valueOptions));
|
||||||
$output = "";
|
$output = '';
|
||||||
|
|
||||||
if (empty($options['value'])) {
|
if (empty($options['value'])) {
|
||||||
$options['value'] = 1;
|
$options['value'] = 1;
|
||||||
|
|
Loading…
Reference in a new issue