Usuário com melhor resposta
Mascarar campo de valor monetario

Pergunta
-
Bom dia,
estou usando o Jquery maskmoney para mascarar dados de valores monetário, mas quando faço isso não passa na validação no lado do cliente, ele diz que o valor deve ser um numero. estou usando váriavel do tipo decimal para esses campos monetários. Como vocês fazem nas aplicações web de vocês? obrigado.
Respostas
-
Qual a mensagem que está recebendo?
"The value blablabla is not a valid for blablabla" ??
Se for esta mensagem a forma de solucionar é a seguinte:
Abra o jquery.validade.js e procure pela validação numérica:
"number: function(value, element) { "
Altere o retorno para:
this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:[\.,]\d+)?$/.test(value);
Caso assim não dê certo, peço para que olhe este link:
http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx/
Victor Santos | MCSD, MS, MTA
- Marcado como Resposta Alan F. Almeida sexta-feira, 25 de julho de 2014 17:15
Todas as Respostas
-
Coloca seu código pra gente ver o que você está fazendo de errado.
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
-
Jean segue o codigo.
propriedade na classe obra:
[Required(ErrorMessage = "Campo Valor da Obra é obrgatório!")] public decimal VlrObra { get; set; }
Na View:
@Html.Label("Valor") @Html.TextBoxFor(model => model.obra.VlrObra)
Codigo Jquery para gerar a mascara usando o maskmoney:
$(document).ready(function () { $('#obra_VlrObra').maskMoney({ showSymbol: true, symbol: "R$", decimal: ",", thousands: "." }); });
- Editado Alan F. Almeida quarta-feira, 23 de julho de 2014 14:58 Retirar comentario de codigo postado.
-
Boa tarde Alan,
O problema está na sua máscara, ela está enviando o "R$" para o model que está rejeitando por isto não ser numérico.
Porque você não utiliza sem o símbolo? Deixa ele com o label.
Abraços
Victor Santos | MCSD, MS, MTA
- Sugerido como Resposta Jean Carlos Galhardi quarta-feira, 23 de julho de 2014 18:28
- Não Sugerido como Resposta Jean Carlos Galhardi quinta-feira, 24 de julho de 2014 13:54
-
-
-
Victor, a base de dados está no idioma ingles, o collation é o Latin1_General_CI_AS, mas como eu disse a validação ocorre no lado do cliente, nem chega a ir para o servidor, eu mudei a mensagem no metodo ModelState.IsValid do controller e no metodo Validation.Sumary que fica na pagina para ter certeza de onde a validação estava pegando o erro e é na pagina.
-
Qual a mensagem que está recebendo?
"The value blablabla is not a valid for blablabla" ??
Se for esta mensagem a forma de solucionar é a seguinte:
Abra o jquery.validade.js e procure pela validação numérica:
"number: function(value, element) { "
Altere o retorno para:
this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:[\.,]\d+)?$/.test(value);
Caso assim não dê certo, peço para que olhe este link:
http://haacked.com/archive/2011/03/19/fixing-binding-to-decimals.aspx/
Victor Santos | MCSD, MS, MTA
- Marcado como Resposta Alan F. Almeida sexta-feira, 25 de julho de 2014 17:15
-
-