Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

447
Views
No se puede obtener el valor bruto de (incluido el punto (.)) del número de tipo de entrada HTML

Cuando hago clic en la entrada <input type="number" id="n" /> ; escriba alguna tecla en la función de keypress de tecla de la entrada. Luego escribiendo . aunque se muestra en la entrada pero no puedo ver . en $('#n').val() .

Por ejemplo, después de escribir: 123. Entonces $('#n').val() solo devuelve 123 .

¿Hay algún atributo de <input type="number" /> que pueda obtener su raw value que es 123. en lugar de 123 ?

 $("#n").on("keypress", function(event) { console.log($("#n").val()); });
 <script src="https://code.jquery.com/jquery-2.1.4.js"></script> <input type="number" pattern="[0-9]{1,2}([\.][0-9]{1,2})?" id="n" step="0.01" />

demostración de JSbin

ACTUALIZAR:

  • input DEBE tener un número de tipo para permitir que muestre la entrada de números solo en el teclado virtual en la web móvil.
  • Debería verificar el patrón 99.99 y funcionar de la siguiente manera:

    1. Cuando escriba 9 OK // ingrese: 9
    2. escriba 9 OK // entrada: 99
    3. escriba 9 NO, no coincide con el patrón // entrada: 99
    4. Luego escriba 1 NO, no coincide con el patrón // entrada: 99
    5. ..Tipo libre escribiendo cualquier cosa en lugar de un punto (.) aquí...
    6. escriba punto (.) OK // entrada: 99.
    7. escriba 9 OK // entrada: 99.9
    8. escriba 9 OK // entrada: 99.99
    9. escriba 9 NO // entrada: 99.99

Sin detectar el punto de existencia (.), ¿cómo puedo detectar el caso de escribir múltiples . consecutivamente?

about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Yo mismo me he enfrentado a este problema antes. Tal vez esto pueda ayudar:

 $("#n").on("keyup", function(event){ var val = $('#n').val(); if(event.keyCode == 190) { val+='.'; } console.log(val); });
 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>JS Bin</title> </head> <body> <script src="https://code.jquery.com/jquery-2.1.4.js"></script> <input type="number" id="n" /> </body> </html>

about 4 years ago · Santiago Trujillo Report

0

<input type="number" min="0" max="999" step="0.000001" pattern="[0-9]{1,2}([\.][0-9]{1,2})?" id="n" />

Esto debería solucionar tu problema. Use FocusOut event to capture the value

about 4 years ago · Santiago Trujillo Report

0

Para obtener un valor de la entrada con tipo numérico, cuando el valor termina con un punto, debe usar una solución pirateada que requiere que escuche el evento 'onKeyUp'. Este comportamiento es intencional ya que la entrada numérica solo debe devolver números válidos.

Aquí está mi implementación de la solución descrita:

 const resultContainer = document.querySelector("#result"); let value = null; const updateValue = (event) => { const DOT_KEY_CODE = 190; const BACKSPACE_KEY_CODE = 8; let newValue = event.currentTarget.value; if (newValue === "" || newValue === null) { if (event.keyCode === DOT_KEY_CODE) { newValue = value.toString() + "."; } else if (event.keyCode === BACKSPACE_KEY_CODE) { const valueParts = value.toString().split("."); const DECIMAL_PART = 1; const decimalPlaces = valueParts.length > 1 ? valueParts[DECIMAL_PART].length : 0; const LAST_DECIMAL_PLACE = 1; if (decimalPlaces === LAST_DECIMAL_PLACE) { const REMOVE_ONE_CHAR = 1; newValue = value.toString().substring(0, value.toString().length - REMOVE_ONE_CHAR); } } } value = newValue; resultContainer.innerHTML = newValue; };
 <input type="number" onKeyUp="updateValue(event)" /> <div>Received value: <span id="result"></span></div>

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!