tutorial true plugin percent how example ejemplos javascript jquery jquery-plugins javascript-events maskedinput

javascript - true - jquery mask tutorial



El complemento Jquery Masked Input permite dot (1)

Puede interceptar el comando de teclado para hacer esto, pero necesitará alguna forma de actualizar el estado del complemento.

El siguiente código funcionará:

$("#percent").bind({ keydown: function(e) { // custom handler for dot var userInput = parseFloat($("#percent").val()); if(e.which == ''190'' || e.which == ''110'') { // if entered number is integer and less than 10 if(userInput % 1 === 0 && userInput < 10) { // prevent default mask input handlers from calling e.preventDefault(); e.stopImmediatePropagation(); // update value $("#percent").val(''0''+userInput+''.''); // simulate paste event to refresh mask input plugin state $("#percent").trigger(''paste'').trigger(''input''); } } } }).mask("99.99?9", {placeholder: ""});

Trabajando JSFiddle aquí

Estoy usando el complemento de entrada JQuery Masked.

$("#percent").mask("99.99?9");

Esto permite números como 10.999, 10.99, 01.999, 01.99

Lo que quiero lograr es que no quiero que el usuario escriba 01.99 . En cambio, si el usuario escribe 1.99 , quiero 0 antes de que 1 se agregue automáticamente. Así es como empecé, pero no sé cómo continuar:

//assume i typed in field 11.99 $(document).on(''keyup'', ''#percent'', function(evt) { var input = $(this).val(); alert(input); // 11.99_ if(evt.which == ''190'' || evt.which == ''110'') { //if dot is clicked alert(parseInt(input)); // 11 } });

Tenga en cuenta que la entrada de alerta imprime 11.99_ con guion bajo al final ya que el tercer valor es opcional y no lo he ingresado.

Ahora este valor es perfectamente normal pero si el usuario ingresara 1.99 , no podría, ya que automáticamente movería 9 hacia 1 para llenarlo con 2 dígitos, por lo que regresaría como 19.9 y esto no es válido ya que debe haber 2 decimales como se define arriba . Entonces, en mi sentencia if, quiero poder detectar si lo que se ingresó es menos de 10 , si es menos de 10 en puntos decimales, entonces agregue 0 al comienzo.

Ok, encontré una solución para underscore _ :

$("#percent").mask("99.99?9", {placeholder: ""})

pero aún no soluciona otro problema al ingresar 1.99 siendo 19.9