Dada la entrada de un número:
<input type="number" id="create-y-small" name="create-y-small" value="0">¿Cómo obtengo el valor de la entrada como un número? Lo siguiente devuelve una cadena:
$("#create-y-small").val()¿Por qué es este el comportamiento predeterminado? ¿Seguramente uno debería esperar que una entrada de tipo numérico dé un número?
He buscado respuestas en otros lugares, pero no tuve suerte:
El valor de entrada es una cadena en lugar de un número : las respuestas usan el análisis para analizar un número. No quiero analizar un número, solo quiero obtener el número como un número.
Obtenga el valor variable del número de entrada : OP parecía feliz de obtener el valor como una cadena
Obtenga el valor de un número de entrada en jQuery - La misma historia
https://www.codegrepper.com/code-examples/javascript/how+to+get+the+value+of+input+number+using+jquery - La misma historia
Puede usar los valHooks de jQuery para cambiar la forma en que jQuery devuelve los valores.
$.valHooks.number = { get: function( elem ) { return elem.value * 1; } }; Solo necesita hacer esto una vez en su código y luego todas las entradas de type=number devolverán un número.
console.log( "num is a string", $("#num").val() === "1", $("#num").val() === 1, $("#txt").val() === "1", $("#txt").val() === 1) $.valHooks.number = { get: function( elem ) { return elem.value * 1; } }; // confirm no neffect on type='text' console.log( "num is a number", $("#num").val() === "1", $("#num").val() === 1, $("#txt").val() === "1", $("#txt").val() === 1) <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <input type='number' id='num' value="1"> <input type='text' id='txt' value="1">Todos los elementos de entrada en HTML devuelven una cadena como su valor. Si desea el resultado como un int, debe convertirlo.
parseInt($("#create-y-small").val())