Skip to content

Commit

Permalink
Merge pull request #64 from haacked/haacked/select-fix
Browse files Browse the repository at this point in the history
Select validation fix
  • Loading branch information
haacked authored Jul 30, 2023
2 parents 8b72a43 + 64482b0 commit ed5a2d1
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 12 deletions.
8 changes: 4 additions & 4 deletions dist/aspnet-validation.js
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ var MvcValidationProviders = /** @class */ (function () {
// Handle single and multiple checkboxes/radio buttons.
var elementType = element.type.toLowerCase();
if (elementType === "checkbox" || elementType === "radio") {
var allElementsOfThisName = Array.from(element.form.querySelectorAll("input[name='".concat(element.name, "'][type='").concat(elementType, "']")));
var allElementsOfThisName = Array.from(element.form.querySelectorAll(validatableSelector("[name='".concat(element.name, "'][type='").concat(elementType, "']"))));
for (var _i = 0, allElementsOfThisName_1 = allElementsOfThisName; _i < allElementsOfThisName_1.length; _i++) {
var element_1 = allElementsOfThisName_1[_i];
if (element_1 instanceof HTMLInputElement && element_1.checked === true) {
Expand Down Expand Up @@ -606,7 +606,7 @@ var ValidationService = /** @class */ (function () {
}
}
var fieldUID = _this.getElementUID(field);
return _this.summary[fieldUID] != null;
return _this.summary[fieldUID] === undefined;
};
/**
* Override CSS class name for input validation error. Default: 'input-validation-error'
Expand Down Expand Up @@ -1045,7 +1045,7 @@ var ValidationService = /** @class */ (function () {
this.swapClasses(input, this.ValidationInputCssClassName, this.ValidationInputValidCssClassName);
if (input.form) {
// Adding an error to one input should also add it to others with the same name (i.e. for radio button and checkbox lists).
var inputs = input.form.querySelectorAll("input[name=\"".concat(input.name, "\"]"));
var inputs = input.form.querySelectorAll(validatableSelector("[name=\"".concat(input.name, "\"]")));
for (var i = 0; i < inputs.length; i++) {
this.swapClasses(inputs[i], this.ValidationInputCssClassName, this.ValidationInputValidCssClassName);
var uid = this.getElementUID(inputs[i]);
Expand All @@ -1069,7 +1069,7 @@ var ValidationService = /** @class */ (function () {
this.swapClasses(input, this.ValidationInputValidCssClassName, this.ValidationInputCssClassName);
// Removing an error from one input should also remove it from others with the same name (i.e. for radio button and checkbox lists).
if (input.form) {
var inputs = input.form.querySelectorAll("input[name=\"".concat(input.name, "\"]"));
var inputs = input.form.querySelectorAll(validatableSelector("[name=\"".concat(input.name, "\"]")));
for (var i = 0; i < inputs.length; i++) {
this.swapClasses(inputs[i], this.ValidationInputValidCssClassName, this.ValidationInputCssClassName);
var uid = this.getElementUID(inputs[i]);
Expand Down
2 changes: 1 addition & 1 deletion dist/aspnet-validation.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/aspnet-validation.min.js.map

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ export class MvcValidationProviders {
// Handle single and multiple checkboxes/radio buttons.
const elementType = element.type.toLowerCase();
if (elementType === "checkbox" || elementType === "radio") {
const allElementsOfThisName = Array.from(element.form.querySelectorAll(`input[name='${element.name}'][type='${elementType}']`));
const allElementsOfThisName = Array.from(element.form.querySelectorAll(validatableSelector(`[name='${element.name}'][type='${elementType}']`)));
for (let element of allElementsOfThisName) {
if (element instanceof HTMLInputElement && element.checked === true) {
return true;
Expand Down Expand Up @@ -787,7 +787,7 @@ export class ValidationService {
}

let fieldUID = this.getElementUID(field);
return this.summary[fieldUID] != null;
return this.summary[fieldUID] === undefined;
}

/**
Expand Down Expand Up @@ -1055,7 +1055,7 @@ export class ValidationService {

if (input.form) {
// Adding an error to one input should also add it to others with the same name (i.e. for radio button and checkbox lists).
const inputs = input.form.querySelectorAll(`input[name="${input.name}"]`);
const inputs = input.form.querySelectorAll(validatableSelector(`[name="${input.name}"]`));
for (let i = 0; i < inputs.length; i++) {
this.swapClasses(inputs[i],
this.ValidationInputCssClassName,
Expand Down Expand Up @@ -1090,7 +1090,7 @@ export class ValidationService {

// Removing an error from one input should also remove it from others with the same name (i.e. for radio button and checkbox lists).
if (input.form) {
const inputs = input.form.querySelectorAll(`input[name="${input.name}"]`);
const inputs = input.form.querySelectorAll(validatableSelector(`[name="${input.name}"]`));
for (let i = 0; i < inputs.length; i++) {
this.swapClasses(inputs[i],
this.ValidationInputValidCssClassName,
Expand Down

0 comments on commit ed5a2d1

Please sign in to comment.