Cuando un usuario ingresa valores numéricos, solo quiero mostrar el número par que quiero establecer para evitar el valor predeterminado en valores impares.

Html:

Enter any number: <input type="text">
                  <p id="even"></p>

Javascript:

function (e) {
    e.preventDefault();
}
-1
user3838438 2 sep. 2014 a las 23:06

3 respuestas

La mejor respuesta

Puede agregar un detector de eventos al elemento de entrada y validar que el número sea par.

Demo

Javascript

var num = document.getElementById('num');
var out = document.getElementById('out');

var isNumber = function(n) { return n == parseFloat(n); }
var isEven = function(n) { return isNumber(n) && (n % 2 == 0); }
var isOdd = function(n) { return isNumber(n) && (Math.abs(n) % 2 == 1); }

var myFunction = function(e) {
    var val = num.value;
    if (isEven(val)) {
        out.innerHTML = val;
    } else {
        e.preventDefault();
    }
};

num.addEventListener('blur', myFunction, false);

Html

Enter any number: <input type="text" id="num" />
<hr />
Value: <span id="out"></span>

Actualizar

Si desea validación en vivo, cambie blur a keyup.

num.addEventListener('keyup', myFunction, false);
0
Mr. Polywhirl 2 sep. 2014 a las 21:10

Si está preguntando cómo detectar un valor impar, podría usar algo como

function whatever(e){
    if(value % 2 != 0){
        e.preventDefault()
    }else{
        //Do something
    }
}
0
Legendary_Linux 2 sep. 2014 a las 19:19

Probablemente algo como esto:

$("input").mouseup(function() {
  var num = $(this).val();
   if (num % 2) {
     console.log(num);
  }
});

EDITAR: y aquí está en JS simple:

var el = document.getElementsByTagName("input")[0];
el.onkeyup = function () {
    var num = el.value;
    if (num % 2 == false) {
        console.log(num);
    }
};
0
Bram Vanroy 2 sep. 2014 a las 19:27