如何为输入创建防止默认功能?

时间:2014-09-02 19:06:58

标签: javascript html

当用户输入数值时,我只想显示偶数,我想设置阻止奇数值的默认值。

HTML:

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

JavaScript的:

function (e) {
    e.preventDefault();
}

3 个答案:

答案 0 :(得分:0)

可能是这样的:

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

EDIT:和普通JS中的here it is

var el = document.getElementsByTagName("input")[0];
el.onkeyup = function () {
    var num = el.value;
    if (num % 2 == false) {
        console.log(num);
    }
};

答案 1 :(得分:0)

如果您询问如何检测奇数值,可以使用类似

的内容
function whatever(e){
    if(value % 2 != 0){
        e.preventDefault()
    }else{
        //Do something
    }
}

答案 2 :(得分:0)

您可以向输入元素添加事件侦听器,并验证该数字是否为偶数。

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>

更新

如果您想要实时验证,请将blur更改为keyup

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