Skip to content

Commit

Permalink
Added form helper option 'useValidationMessages' to opt-in to custom …
Browse files Browse the repository at this point in the history
…html5 validation
  • Loading branch information
jeremyharris committed Mar 20, 2018
1 parent ee70bb8 commit 00ed234
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
6 changes: 4 additions & 2 deletions src/View/Helper/FormHelper.php
Expand Up @@ -163,7 +163,9 @@ class FormHelper extends Helper
'textarea' => '<textarea name="{{name}}"{{attrs}}>{{value}}</textarea>',
// Container for submit buttons.
'submitContainer' => '<div class="submit">{{content}}</div>',
]
],
// set HTML5 validation message to custom required/empty messages
'useValidationMessages' => false,
];

/**
Expand Down Expand Up @@ -1434,7 +1436,7 @@ protected function _magicOptions($fieldName, $options, $allowOverride)
}

$message = $context->getRequiredMessage($fieldName);
if ($options['required'] && $message) {
if ($options['required'] && $message && $this->getConfig('useValidationMessages')) {
$message = htmlspecialchars(addslashes($message));
$options['oninvalid'] = "this.setCustomValidity('$message')";
$options['onvalid'] = "this.setCustomValidity('')";
Expand Down
4 changes: 2 additions & 2 deletions tests/TestCase/View/Helper/FormHelperTest.php
Expand Up @@ -8340,8 +8340,6 @@ public function testMultiRecordForm()
'required' => 'required',
'id' => '0-comments-1-comment',
'rows' => 5,
'onvalid' => 'this.setCustomValidity(&#039;&#039;)',
'oninvalid' => 'this.setCustomValidity(&#039;This field cannot be left empty&#039;)',
],
'/textarea',
'/div'
Expand Down Expand Up @@ -8426,6 +8424,8 @@ public function testHtml5ControlException()
*/
public function testHtml5ErrorMessage()
{
$this->Form->setConfig('useValidationMessages', true);

$validator = (new \Cake\Validation\Validator())
->requirePresence('email', true, 'Custom error message')
->requirePresence('password')
Expand Down

0 comments on commit 00ed234

Please sign in to comment.