1
resposta

Se definimos as propriedades valor e destino como number, por que conseguimos enviar strings pelos formulários?

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.

1 resposta

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!