javascript - JS onkeydown/onkeyup - 转换为 jQuery keydown/keyup

标签 javascript jquery

我目前有一些用于电话号码验证的js,它在输入字段中使用内联事件监听器。我需要更改此示例,这样我就可以定位 jQuery 中的 DOM 元素并添加事件监听器,而不是内联附加事件监听器。这是我迄今为止所拥有的一个工作示例:http://jsfiddle.net/yVdgL/21/

window.mask = function (e,f){
    var len = f.value.length;
    var key = whichKey(e);
    if((key>=47 && key<=58) || (key>=96 && key<=105))
    {
        if( len==1 )f.value='('+f.value
        else if(len==4 )f.value=f.value+')'
        else if(len==8 )f.value=f.value+'-'
        else f.value=f.value;
    }
}

function whichKey(e) {
    var code;
    if (!e) var e = window.event;
    if (e.keyCode) code = e.keyCode;
    else if (e.which) code = e.which;
    return code
}

<input type="text" name="phone" id="phone" onkeydown="mask(event,this)" onkeyup="mask(event,this)" maxlength="13" />

我试过this但无法实现我需要的功能。

最佳答案

我已经更新了你的 jsfiddle 示例:-

jQuery(document).ready(function(){
    jQuery('#edit-phone1').keyup(function(event){
        mask(event,this);
    });
    jQuery('#edit-phone1').keydown(function(event){
        mask(event,this);
    });
});

单击此处查看工作示例:- http://jsfiddle.net/yVdgL/38/

或者你可以尝试:-

$(document).ready(function() {
    $('#edit-phone1').on("keyup keydown", function(e) {
        mask(e, this);
    });

});

链接是:- http://jsfiddle.net/yVdgL/56/

关于javascript - JS onkeydown/onkeyup - 转换为 jQuery keydown/keyup,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24916538/

相关文章:

c# - 如何在使用 JQuery 显示弹出窗口时防止 asp 按钮上的回发

javascript - IE < 9 CSS3 过渡效果秘籍?

javascript - jQuery - 在多个 div 之间切换不起作用

javascript - 为什么在此实例中使用 `concat` 而不是 `push`?

javascript - 在事件上更新 jQuery 变量

javascript - AJAX:POST 后更新 div 类

javascript - 将 PHP 传递到 jQuery

Javascript:在div中获取div

javascript - Polymer:如何附加滚动事件?

javascript - 不寻常的 if/else 行为