如何通过函数访问keydown?

时间:2015-01-10 00:15:44

标签: javascript jquery css3

我需要确保动态生成的输入字段的输入只接受数字。

这个jsfiddle完全符合我的要求,但它不允许动态生成的字段:http://jsfiddle.net/lesson8/HkEuf/1/

我已修改它以使用某个功能,但它没有做任何事情。我有什么想法我做错了吗?

HTML:

Number : <input onkeydown="test(this);" type="text" name="quantity" id="quantity" />&nbsp;<span id="errmsg"></span>

使用Javascript:

function test(input) {
  //called when key is pressed in textbox
  input.keypress(function (e) {
     //if the letter is not digit then display error and don't type anything
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
        //display error message
        $("#errmsg").html("Digits Only").show().fadeOut("slow");
               return false;
    }
   });
}

CSS:

#errmsg
{
color: red;
}

功能版本:http://jsfiddle.net/HkEuf/4776/

2 个答案:

答案 0 :(得分:0)

您应该使用.delegate

 $('#container', 'input', 'keypress', function() {
     // your code here
 });

答案 1 :(得分:0)

试试这个:

<input value="" onkeypress="return onlyNumber(event)" />

<script type="text/javascript">

function onlyNumber(e) {
    e = (e) ? e : window.event;
    var charCode = (e.which) ? e.which : e.keyCode;
    if (charCode > 31 && (charCode < 48 || charCode > 57)) {
        return false;
    }
    return true;
}

</script>