【发布时间】:2014-12-14 16:26:01
【问题描述】:
为什么onkeypress 无法检测到Backspace keyboard?
首先,将xxxxxxxxxx填入输入文本,然后按submit button
你会看到红色文本invalid email address 并按backspace keyboard 删除输入类型文本中的一些字符,为什么onkeypress 在退格键盘上不起作用?
http://jsfiddle.net/btetyLwb/1/
<script>
function clear_email_valid_text() {
$('#valid_email').hide();
$('#invalid_email').hide();
}
function validateForm() {
var newsletters_email = document.forms["form_validate_email_newsletters"]["newsletters_email"].value;
var atpos = newsletters_email.indexOf("@");
var dotpos = newsletters_email.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=newsletters_email.length) {
$('#valid_email').hide();
$('#invalid_email').show();
return false;
}
else {
$('#valid_email').show();
$('#invalid_email').hide();
return false;
}
}
</script>
【问题讨论】:
-
因为
onkeypress仅在按下的键产生可打印字符时触发。 -
但是我按下了键
backspace为什么onkeypress不起作用? -
backspace不是可打印字符。如果您想检测某些特定键,请改用onkeyup。
标签: javascript jquery keyboard