Javascript 为什么我们使用按键事件和按键代码?
当我在Javascript代码中使用Tabbing时,它不适用于Mozilla中的文本框: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 \+\?\(\)*#;:\$@!\
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世界的新手