Skip to content

Commit 0ca4835

Browse files
committed
Move csvValid to data attributes
The example on the readme didn't change, because jQuery will parse "false" string and return a boolean ``` # html <div id="test-me" data-value="hello"></div> # js console.log($('#test-me').data('value')) # result false ```
1 parent 1f1fecb commit 0ca4835

File tree

6 files changed

+41
-16
lines changed

6 files changed

+41
-16
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
- `data-changed` => `data-csv-changed`
77
- `data-valid` => `data-csv-valid`
88
- `data-validate` => `data-csv-validate`
9+
* [FEATURE] Use data attributes instead of `jQuery.data()`
910

1011
## 22.3.0 / 2024-11-12
1112

dist/client-side-validations.esm.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ var ClientSideValidations = {
250250
if ($target.is('form')) {
251251
ClientSideValidations.disable($target.find(':input'));
252252
} else {
253-
$target.removeData(['csvValid']);
253+
delete $target[0].dataset.csvValid;
254254
delete $target[0].dataset.csvChanged;
255255
$target.filter(':input').each(function () {
256256
delete this.dataset.csvValidate;
@@ -631,13 +631,19 @@ var validateForm = function validateForm($form, validators) {
631631
return valid;
632632
};
633633
var passElement = function passElement($element) {
634-
$element.trigger('element:validate:pass.ClientSideValidations').data('csvValid', null);
634+
var element = $element[0];
635+
$element.trigger('element:validate:pass.ClientSideValidations');
636+
delete element.dataset.csvValid;
635637
};
636638
var failElement = function failElement($element, message) {
637-
$element.trigger('element:validate:fail.ClientSideValidations', message).data('csvValid', false);
639+
var element = $element[0];
640+
$element.trigger('element:validate:fail.ClientSideValidations', message);
641+
element.dataset.csvValid = 'false';
638642
};
639643
var afterValidate = function afterValidate($element) {
640-
return $element.trigger('element:validate:after.ClientSideValidations').data('csvValid') !== false;
644+
var element = $element[0];
645+
$element.trigger('element:validate:after.ClientSideValidations');
646+
return element.dataset.csvValid !== 'false';
641647
};
642648
var executeValidator = function executeValidator(validatorFunctions, validatorFunction, validatorOptions, $element) {
643649
for (var validatorOption in validatorOptions) {

dist/client-side-validations.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
if ($target.is('form')) {
255255
ClientSideValidations.disable($target.find(':input'));
256256
} else {
257-
$target.removeData(['csvValid']);
257+
delete $target[0].dataset.csvValid;
258258
delete $target[0].dataset.csvChanged;
259259
$target.filter(':input').each(function () {
260260
delete this.dataset.csvValidate;
@@ -635,13 +635,19 @@
635635
return valid;
636636
};
637637
var passElement = function passElement($element) {
638-
$element.trigger('element:validate:pass.ClientSideValidations').data('csvValid', null);
638+
var element = $element[0];
639+
$element.trigger('element:validate:pass.ClientSideValidations');
640+
delete element.dataset.csvValid;
639641
};
640642
var failElement = function failElement($element, message) {
641-
$element.trigger('element:validate:fail.ClientSideValidations', message).data('csvValid', false);
643+
var element = $element[0];
644+
$element.trigger('element:validate:fail.ClientSideValidations', message);
645+
element.dataset.csvValid = 'false';
642646
};
643647
var afterValidate = function afterValidate($element) {
644-
return $element.trigger('element:validate:after.ClientSideValidations').data('csvValid') !== false;
648+
var element = $element[0];
649+
$element.trigger('element:validate:after.ClientSideValidations');
650+
return element.dataset.csvValid !== 'false';
645651
};
646652
var executeValidator = function executeValidator(validatorFunctions, validatorFunction, validatorOptions, $element) {
647653
for (var validatorOption in validatorOptions) {

src/core.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ const ClientSideValidations = {
241241
if ($target.is('form')) {
242242
ClientSideValidations.disable($target.find(':input'))
243243
} else {
244-
$target.removeData(['csvValid'])
244+
delete $target[0].dataset.csvValid
245245
delete $target[0].dataset.csvChanged
246246
$target.filter(':input').each(function () {
247247
delete this.dataset.csvValidate

src/index.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -125,15 +125,21 @@ const validateForm = ($form, validators) => {
125125
}
126126

127127
const passElement = ($element) => {
128-
$element.trigger('element:validate:pass.ClientSideValidations').data('csvValid', null)
128+
const element = $element[0]
129+
$element.trigger('element:validate:pass.ClientSideValidations')
130+
delete element.dataset.csvValid
129131
}
130132

131133
const failElement = ($element, message) => {
132-
$element.trigger('element:validate:fail.ClientSideValidations', message).data('csvValid', false)
134+
const element = $element[0]
135+
$element.trigger('element:validate:fail.ClientSideValidations', message)
136+
element.dataset.csvValid = 'false'
133137
}
134138

135139
const afterValidate = ($element) => {
136-
return $element.trigger('element:validate:after.ClientSideValidations').data('csvValid') !== false
140+
const element = $element[0]
141+
$element.trigger('element:validate:after.ClientSideValidations')
142+
return element.dataset.csvValid !== 'false'
137143
}
138144

139145
const executeValidator = (validatorFunctions, validatorFunction, validatorOptions, $element) => {

vendor/assets/javascripts/rails.validations.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@
254254
if ($target.is('form')) {
255255
ClientSideValidations.disable($target.find(':input'));
256256
} else {
257-
$target.removeData(['csvValid']);
257+
delete $target[0].dataset.csvValid;
258258
delete $target[0].dataset.csvChanged;
259259
$target.filter(':input').each(function () {
260260
delete this.dataset.csvValidate;
@@ -635,13 +635,19 @@
635635
return valid;
636636
};
637637
var passElement = function passElement($element) {
638-
$element.trigger('element:validate:pass.ClientSideValidations').data('csvValid', null);
638+
var element = $element[0];
639+
$element.trigger('element:validate:pass.ClientSideValidations');
640+
delete element.dataset.csvValid;
639641
};
640642
var failElement = function failElement($element, message) {
641-
$element.trigger('element:validate:fail.ClientSideValidations', message).data('csvValid', false);
643+
var element = $element[0];
644+
$element.trigger('element:validate:fail.ClientSideValidations', message);
645+
element.dataset.csvValid = 'false';
642646
};
643647
var afterValidate = function afterValidate($element) {
644-
return $element.trigger('element:validate:after.ClientSideValidations').data('csvValid') !== false;
648+
var element = $element[0];
649+
$element.trigger('element:validate:after.ClientSideValidations');
650+
return element.dataset.csvValid !== 'false';
645651
};
646652
var executeValidator = function executeValidator(validatorFunctions, validatorFunction, validatorOptions, $element) {
647653
for (var validatorOption in validatorOptions) {

0 commit comments

Comments
 (0)