Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

560
Visualizações
Cargando números decimales desde el formulario django (formset) en la entrada de números

Estoy creando una aplicación Django simple donde puedes crear recetas con ingredientes. En mi vista RecipeCreate , tengo un formulario simple con una entrada de select (donde selecciona un producto) y un input type="number" con el recuento de productos. Entonces mi forma y modelo son bastante simples:

 class Ingredient(models.Model): product = models.ForeignKey(Product) count = models.DecimalField(max_digits=4, decimal_places=2) class IngredientForm(forms.ModelForm): class Meta: model = Ingredient fields = ('product', 'count')

Ahora, cuando quiero mostrar mi receta en mi vista RecipeEdit , todo se carga bien, excepto la entrada de count . Recibo el siguiente error de validación de jQuery:

 The specified value "12,00" is not a valid number. The value must match to the following regular expression: -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)?

Debido a que estoy escribiendo un sitio web polaco, me gustaría tener nuestro separador decimal estándar nacional, que es un , no un . (pero el punto también debe ser un separador).

Una de las soluciones sería usar un input type="text" , pero significaría que tengo que validar mi número manualmente, lo cual es problemático. ¿Hay alguna forma de pasar mi número 12,00 para que sea aceptado por el campo de entrada? ¿Probablemente cambiando/sobrescribiendo la validación estándar de jQuery? Pero aceptaré cualquier buena solución sugerida.

Otro dato curioso es que cuando escribo manualmente 12,00 o 12.00 y envío mi formulario, mi formulario es válido y mi campo de recuento de Ingredient tiene un valor de 12 que es lo que deseo. Es otro pro para el input type="number" .

about 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Puede configurar su separador decimal local

ACTUALIZAR:

No vi que está relacionado con jquery,

podría crear una nueva clase de validador para números de coma, por ejemplo

 jQuery.validator.addMethod("commanumber", function (value, element) { return this.optional(element) || /^(\d+|\d+,\d{1,2})$/.test(value); }, "Please specify the correct number format");

o incluso extender regex a support . además

about 4 years ago · Santiago Trujillo Relatório

0

Ok, he hecho algo como esto. En primer lugar, estoy usando un tipo de entrada = "texto". Luego, usando jQuery.numeric() , convierto mi entrada para que solo acepte números y un , como separador decimal.

 $("#field_id").numeric({ decimal : "," });

Ahora, cada vez que envío mi formulario, tengo un código que convierte mi , en . para que se ajuste a la lógica de backend:

 $('#recipe-form').on('submit', function(){ $('.convert-separator').each(function () { $(this).val($(this).val().replace(',','.')); }); this.submit(); });

Pero creo que no es la mejor solución. Creo que debe existir la posibilidad de usar el campo input type="number" con un separador ,

about 4 years ago · Santiago Trujillo Relatório

0

Puede convertir el valor de conteo en su código jQuery:

 dotCount = count.toString().replace(',', '.');

Esto reemplaza la coma con un punto

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda