0

大家早上好,我想做一个简单的小部件,它检查焦点上的文本输入,如果有一些非数字字符,它会清除值(即如果有某种文本)实际上我正在处理这个:

$("#textinpId").focus(function() {

    if( $(this).val() == "Default Text" ) {
        $(this).val("");
    }

});

但我想将它概括为不仅是“默认文本”,而且是任何非数字数字(电话号码),接下来但同样重要的是,我想在焦点和非焦点上触发事件,但这部分我我确定我能应付自如:D

那可能吗?

4

4 回答 4

4
$('#textinpId').focus(function(){
    var regex = /^\d+$/;
    if(!regex.test($(this).val())) {
        $(this).val('');
    }
}); 
于 2013-07-25T14:02:28.230 回答
2

在 onkeypress 事件上使用以下函数仅接受十进制值

<input type="text" onkeypress=" return isNumberKey(event)"/>

  function isNumberKey(evt) {
                var charCode = (evt.which) ? evt.which : event.keyCode
                if (charCode != 46 && charCode > 31
            && (charCode < 48 || charCode > 57))
                    return false;

                return true;
            }

您只能使用整数

<input type="text" onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"/>
于 2013-07-25T14:02:20.863 回答
1

尝试这个

jQuery('#phone').keyup(function(){
    if(!isNumber($(this).val()))
    {
       $(this).val('');
    }
    });

function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}

小提琴

更新

也检查焦点

小提琴

只允许DECIMAL数字

小提琴

于 2013-07-25T14:01:16.780 回答
0

你可以使用纯 javascript 和正则表达式来做到这一点

var result  = /^[0-9]+$/.test(input);
if(!result)
  $('#textBoxID).val('');

如果输入是数字,则返回 true,否则返回 false。

于 2013-07-25T14:04:53.980 回答