Se definimos as propriedades valor e destino como number, por que conseguimos enviar strings pelos formulários? Se eu testar enviar qualquer string tudo ainda funciona.
Se definimos as propriedades valor e destino como number, por que conseguimos enviar strings pelos formulários? Se eu testar enviar qualquer string tudo ainda funciona.
Olá Guilherme, tudo bem com você?
Peço desculpas pela demora em obter um retorno.
Mesmo que você defina as propriedades valor
e destino
como tipo number
, o Angular ainda permite que valores de outros tipos sejam atribuídos a elas, incluindo strings.
Todavia, isso também ocorre devido ao atributo type
declarado no formulário html, que está com o tipo text, que é um tipo de campo de entrada HTML que aceita qualquer tipo de texto. Ou seja, ele permite que o usuário insira qualquer sequência de caracteres, como letras, números, símbolos, espaços em branco, entre outros, por isso strings foram permitidas.
Para sanar este problema e permitir apenas números, altere o campo type
no arquivo nova-transferencia.component.html
para number
(type="number"
), dessa forma, o formulário irá aceitar apenas valores numéricos, como números inteiros ou decimais. Exemplo:
<div class="form-field">
<label class="form-field__label" for="valor">Valor</label>
<input class="form-field__input" type="number" id="valor" [(ngModel)]="valor" name="valor"/>
</div>
Após esta mudança, salve o arquivo e volte a página do seu projeto no navegador e não conseguirá digitar caracteres textuais no campo de número da conta.
Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.
Em caso de dúvidas estou à disposição.
Abraços e bons estudos!