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

243
Visualizações
Javascript: ¿Cómo calcular el número total de meses?

He escrito un código para dividir la entrada en dos variables, es decir, año y mes. Pero, soy incapaz de hacer que funcione. No devuelve el número total de meses en el campo de texto respectivo. Por favor, ayúdame a depurar mi código.

 $(function() { $("#duration").keyup(function() { var input = document.getElementById('duration').value; var fields = input.split('.'); var years = fields[0]; var months = fields[1]; var result = years.val() * 12 + months.val(); document.getElementById("totalNumMonths").innerHTML = result; }); });
 <html> <body> <table> <tr> <td>Calculate Months</td> <td> <label>Input Years in the format (year.month eg 11.6)</label> <input class="form-control" name="duration" id="duration" value="" type="number" /> <br/> <label>Total Months</label> <input class="form-control" name="totalNumMonths" id="totalNumMonths" value="" type="number" /> </td> </tr> </table> </body> </html>

about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Problemas con el código que identifiqué y solucioné.

  • No necesita acceder a years.val() y months.val() porque los years y los months tienen un valor de cadena.
  • Si su entrada no tiene un punto, el valor de los months no estará definido, por lo que puede definir years y months como fields[0] || "0" y fields[1] || "0" respectivamente.
  • Dado que el elemento con id totalNumMonths es una entrada. Debe establecer el value y no innerHTML
  • Dado que el valor de los years y los months produce una cadena, agregué un símbolo + delante de ellos al establecer el valor de #totalNumMonths para convertirlos en números, ya que estamos realizando una acción numérica. De lo contrario, el símbolo + en la cadena realizará la concatenación de cadenas.

violín de trabajo

 $(function () { $("#duration").keyup(function () { var input = document.getElementById('duration').value; var fields = input.split('.'); var years = fields[0] || "0"; var months = fields[1] || "0"; var result = +years * 12 + +months; document.getElementById("totalNumMonths").value = result; }); });
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <table> <tr> <td>Calculate Months</td> <td> <label>Input Years in the format (year.month eg 11.6)</label> <input class="form-control" name="duration" id="duration" value="" type="number" /> <br /> <label>Total Months</label> <input class="form-control" name="totalNumMonths" id="totalNumMonths" value="" type="number" /> </td> </tr> </table>

about 4 years ago · Juan Pablo Isaza Relatório

0

Estaba llamando a val en elementos de cadena, lo que provocó errores. Y el resultado fue agregar meses como valor de cadena.

 $(function () { $("#duration").keyup(function () { var input = document.getElementById('duration').value; var fields = input.split('.'); var years = parseInt(fields[0]); var months = parseInt(fields[1]); var result = (years * 12) + months; document.getElementById("totalNumMonths").value = result; }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <html> <body> <table> <tr> <td>Calculate Months</td> <td> <label>Input Years in the format (year.month eg 11.6)</label> <input class="form-control" name="duration" id="duration" value="" type="number"/> <br/> <label>Total Months</label> <input class="form-control" name="totalNumMonths" id="totalNumMonths" value="" type="number"/> </td> </tr> </table> </body> </html>

about 4 years ago · Juan Pablo Isaza Relatório

0

En el fragmento de código, tiene el valor de años y meses en las variables respectivas, por lo que no necesita usar years.val() para obtener ese valor.

¡¡Mira esto!!

 $(function() { $("#duration").keyup(function() { var input = document.getElementById('duration').value; var fields = input.split('.'); var years = fields[0]; var months = fields[1] || 0; var result = years * 12 + months; document.getElementById("totalNumMonths").innerHTML = result; }); });
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table> <tr> <td>Calculate Months</td> <td> <label>Input Years in the format (year.month eg 11.6)</label> <input class="form-control" name="duration" id="duration" value="" type="number" /> <br/> <label>Total Months :</label> <!-- <input class="form-control" name="totalNumMonths" id="totalNumMonths" value="" type="number" /> --> <span id="totalNumMonths">0</span> </td> </tr> </table>

about 4 years ago · Juan Pablo Isaza 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