Input type=“number” multiples validation error messages with clr-control-error
I'm working now with Clarity in a personal project, I like so much this Design System, so I will stay asking a lot (sorry for that).
I was trying today to implement multiples validation message errors for a type number input into a form. Docs explains that I should use *clr-control-error
to achieve that but it has been impossible.
At the moment validating type number input to show a "required" text works just fine.
View post on imgur.com
But what about if user try to type a letter in the field? It happen with 'e' character. In that case, I want to show another text like "Invalid parameter" or something related.
View post on imgur.com
I was trying do this:
<clr-input-container>
<label class="clr-col-4 clr-col-md-4">Precio de Costo</label>
<input class="clr-col-8 clr-col-md-8" clrInput type="number" formControlName="precioCosto" />
<clr-control-error *clrIfError="'required'">Requerido</clr-control-error>
<clr-control-error *clrIfError="'invalid'">Parámetro Inválido</clr-control-error>
</clr-input-container>
But always show the first message. I was also trying to do with *ngIf
but look like there is a conflict with *clr-control-error
.
Did you get some way to solve this? I will very grateful with you help.
Update: adding Controller code to clarify issue:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-productos',
templateUrl: './productos.component.html',
styleUrls: ['./productos.component.scss']
})
export class ProductosComponent implements OnInit {
private productoForm: FormGroup;
constructor(
private fb: FormBuilder
) { }
ngOnInit() {
this.setProductoForm();
}
get f() { return this.productoForm.controls; }
setProductoForm() {
this.productoForm = this.fb.group({
id: [this.productos.length + 1],
nombre: ['', Validators.required],
laboratorio: ['', Validators.required],
unidadMedida: ['', Validators.required],
precioCosto: ['', Validators.required],
precioVenta: ['', Validators.required]
});
}
}
vmware-clarity
add a comment |
I'm working now with Clarity in a personal project, I like so much this Design System, so I will stay asking a lot (sorry for that).
I was trying today to implement multiples validation message errors for a type number input into a form. Docs explains that I should use *clr-control-error
to achieve that but it has been impossible.
At the moment validating type number input to show a "required" text works just fine.
View post on imgur.com
But what about if user try to type a letter in the field? It happen with 'e' character. In that case, I want to show another text like "Invalid parameter" or something related.
View post on imgur.com
I was trying do this:
<clr-input-container>
<label class="clr-col-4 clr-col-md-4">Precio de Costo</label>
<input class="clr-col-8 clr-col-md-8" clrInput type="number" formControlName="precioCosto" />
<clr-control-error *clrIfError="'required'">Requerido</clr-control-error>
<clr-control-error *clrIfError="'invalid'">Parámetro Inválido</clr-control-error>
</clr-input-container>
But always show the first message. I was also trying to do with *ngIf
but look like there is a conflict with *clr-control-error
.
Did you get some way to solve this? I will very grateful with you help.
Update: adding Controller code to clarify issue:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-productos',
templateUrl: './productos.component.html',
styleUrls: ['./productos.component.scss']
})
export class ProductosComponent implements OnInit {
private productoForm: FormGroup;
constructor(
private fb: FormBuilder
) { }
ngOnInit() {
this.setProductoForm();
}
get f() { return this.productoForm.controls; }
setProductoForm() {
this.productoForm = this.fb.group({
id: [this.productos.length + 1],
nombre: ['', Validators.required],
laboratorio: ['', Validators.required],
unidadMedida: ['', Validators.required],
precioCosto: ['', Validators.required],
precioVenta: ['', Validators.required]
});
}
}
vmware-clarity
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00
add a comment |
I'm working now with Clarity in a personal project, I like so much this Design System, so I will stay asking a lot (sorry for that).
I was trying today to implement multiples validation message errors for a type number input into a form. Docs explains that I should use *clr-control-error
to achieve that but it has been impossible.
At the moment validating type number input to show a "required" text works just fine.
View post on imgur.com
But what about if user try to type a letter in the field? It happen with 'e' character. In that case, I want to show another text like "Invalid parameter" or something related.
View post on imgur.com
I was trying do this:
<clr-input-container>
<label class="clr-col-4 clr-col-md-4">Precio de Costo</label>
<input class="clr-col-8 clr-col-md-8" clrInput type="number" formControlName="precioCosto" />
<clr-control-error *clrIfError="'required'">Requerido</clr-control-error>
<clr-control-error *clrIfError="'invalid'">Parámetro Inválido</clr-control-error>
</clr-input-container>
But always show the first message. I was also trying to do with *ngIf
but look like there is a conflict with *clr-control-error
.
Did you get some way to solve this? I will very grateful with you help.
Update: adding Controller code to clarify issue:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-productos',
templateUrl: './productos.component.html',
styleUrls: ['./productos.component.scss']
})
export class ProductosComponent implements OnInit {
private productoForm: FormGroup;
constructor(
private fb: FormBuilder
) { }
ngOnInit() {
this.setProductoForm();
}
get f() { return this.productoForm.controls; }
setProductoForm() {
this.productoForm = this.fb.group({
id: [this.productos.length + 1],
nombre: ['', Validators.required],
laboratorio: ['', Validators.required],
unidadMedida: ['', Validators.required],
precioCosto: ['', Validators.required],
precioVenta: ['', Validators.required]
});
}
}
vmware-clarity
I'm working now with Clarity in a personal project, I like so much this Design System, so I will stay asking a lot (sorry for that).
I was trying today to implement multiples validation message errors for a type number input into a form. Docs explains that I should use *clr-control-error
to achieve that but it has been impossible.
At the moment validating type number input to show a "required" text works just fine.
View post on imgur.com
But what about if user try to type a letter in the field? It happen with 'e' character. In that case, I want to show another text like "Invalid parameter" or something related.
View post on imgur.com
I was trying do this:
<clr-input-container>
<label class="clr-col-4 clr-col-md-4">Precio de Costo</label>
<input class="clr-col-8 clr-col-md-8" clrInput type="number" formControlName="precioCosto" />
<clr-control-error *clrIfError="'required'">Requerido</clr-control-error>
<clr-control-error *clrIfError="'invalid'">Parámetro Inválido</clr-control-error>
</clr-input-container>
But always show the first message. I was also trying to do with *ngIf
but look like there is a conflict with *clr-control-error
.
Did you get some way to solve this? I will very grateful with you help.
Update: adding Controller code to clarify issue:
import { Component, OnInit } from '@angular/core';
import { FormBuilder, Validators, FormGroup } from '@angular/forms';
@Component({
selector: 'app-productos',
templateUrl: './productos.component.html',
styleUrls: ['./productos.component.scss']
})
export class ProductosComponent implements OnInit {
private productoForm: FormGroup;
constructor(
private fb: FormBuilder
) { }
ngOnInit() {
this.setProductoForm();
}
get f() { return this.productoForm.controls; }
setProductoForm() {
this.productoForm = this.fb.group({
id: [this.productos.length + 1],
nombre: ['', Validators.required],
laboratorio: ['', Validators.required],
unidadMedida: ['', Validators.required],
precioCosto: ['', Validators.required],
precioVenta: ['', Validators.required]
});
}
}
vmware-clarity
vmware-clarity
edited Dec 25 '18 at 20:58
César Gómez
asked Dec 23 '18 at 20:59
César GómezCésar Gómez
214
214
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00
add a comment |
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00
add a comment |
1 Answer
1
active
oldest
votes
The letter e
is a valid character in a number field when you use it with a digit as well, since that is a way to denote exponents. There may be inconsistencies in browsers about how they handle this but here is the spec https://www.w3.org/TR/html5/sec-forms.html#number-state-typenumber. This is really as expected since you've not put in a required value yet, so you get require
error type. There are other characters like -
that might be typed in the field but still not a value by themselves.
You could write your own validator to handle these cases on your own. There is no invalid
validator by default, you'd have to write it, see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53907115%2finput-type-number-multiples-validation-error-messages-with-clr-control-error%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
The letter e
is a valid character in a number field when you use it with a digit as well, since that is a way to denote exponents. There may be inconsistencies in browsers about how they handle this but here is the spec https://www.w3.org/TR/html5/sec-forms.html#number-state-typenumber. This is really as expected since you've not put in a required value yet, so you get require
error type. There are other characters like -
that might be typed in the field but still not a value by themselves.
You could write your own validator to handle these cases on your own. There is no invalid
validator by default, you'd have to write it, see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.
add a comment |
The letter e
is a valid character in a number field when you use it with a digit as well, since that is a way to denote exponents. There may be inconsistencies in browsers about how they handle this but here is the spec https://www.w3.org/TR/html5/sec-forms.html#number-state-typenumber. This is really as expected since you've not put in a required value yet, so you get require
error type. There are other characters like -
that might be typed in the field but still not a value by themselves.
You could write your own validator to handle these cases on your own. There is no invalid
validator by default, you'd have to write it, see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.
add a comment |
The letter e
is a valid character in a number field when you use it with a digit as well, since that is a way to denote exponents. There may be inconsistencies in browsers about how they handle this but here is the spec https://www.w3.org/TR/html5/sec-forms.html#number-state-typenumber. This is really as expected since you've not put in a required value yet, so you get require
error type. There are other characters like -
that might be typed in the field but still not a value by themselves.
You could write your own validator to handle these cases on your own. There is no invalid
validator by default, you'd have to write it, see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.
The letter e
is a valid character in a number field when you use it with a digit as well, since that is a way to denote exponents. There may be inconsistencies in browsers about how they handle this but here is the spec https://www.w3.org/TR/html5/sec-forms.html#number-state-typenumber. This is really as expected since you've not put in a required value yet, so you get require
error type. There are other characters like -
that might be typed in the field but still not a value by themselves.
You could write your own validator to handle these cases on your own. There is no invalid
validator by default, you'd have to write it, see https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5/Constraint_validation.
answered Jan 2 at 18:21
Jeremy WilkenJeremy Wilken
5,7491519
5,7491519
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53907115%2finput-type-number-multiples-validation-error-messages-with-clr-control-error%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Can you provide the code where you create your form controls in the controller?
– Jeremy Wilken
Dec 24 '18 at 14:39
Done, @JeremyWilken.
– César Gómez
Dec 25 '18 at 21:00