Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么我们使用按键事件和按键代码?_Javascript_Jquery_Jquery Ui - Fatal编程技术网

Javascript 为什么我们使用按键事件和按键代码?

Javascript 为什么我们使用按键事件和按键代码?,javascript,jquery,jquery-ui,Javascript,Jquery,Jquery Ui,当我在Javascript代码中使用Tabbing时,它不适用于Mozilla中的文本框: function AttachKeyupEvent() { var textboxes = $("input[type=text][isautocomplete!=true]"); /// regex excluding all foreign characters var regex = new RegExp("^[a-zA-Z0-9\b\s \+\?\(\)*#;:\$@!\

当我在Javascript代码中使用Tabbing时,它不适用于Mozilla中的文本框:

function AttachKeyupEvent() {
    var textboxes = $("input[type=text][isautocomplete!=true]");

    /// regex excluding all foreign characters
    var regex = new RegExp("^[a-zA-Z0-9\b\s \+\?\(\)*#;:\$@!\&=\\-.,'//]+$");

    $(textboxes).live('keypress', function (e) {
        var key = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        var code = e.which || e.keyCode;
        /// code to check foreign characters code 46 is for delete 39 and 37 is for arrows (mozila spport)
        if (regex.test(key) || code == 46 || code == 39 || code == 37 || code == 92) {
            if (e.which != 0 && e.charCode != 0) {
                TriggerHandlers.call(this);
            }
        }
        else {
            e.preventDefault();
            return false;   
        }
    });
但是,当我在其他部分使用此代码时,它可以正常工作

else {
    return true;   
}
});

请任何人给我适当的解释代码到底在做什么?为什么在这里使用这些键码??

e.preventDefault()
返回false只是阻止进一步的选项卡。

e.preventDefault()
顾名思义,阻止浏览器在事件上的默认行为,在这种情况下,使用tab从一个字段转到另一个字段。

仅供参考:
live()
非常不推荐使用。您使用的是哪个版本的jQuery?您的代码正在检查textbox中输入的值是否在指定的格式内。如果没有,它不允许你打字。这就是正则表达式。谢谢阿拉克山德..但这段代码的作用:$(textboxs).live('keypress',function(e){var key=String.fromCharCode(!e.charCode?e.which:e.charCode);var code=e.which | | e.keyCode;///检查外来字符的代码46用于删除39,37用于箭头(mozila sport)if(regex.test(key)| code==46 | | code==39 | | code==37 | | code==92){if(e.which!=0&&e.charCode!=0){TriggerHandlers.call(this)}谢谢大家的回复..明白了。现在谁能解释一下这段代码的完整功能吗..对不起,我是Jquery世界的新手