RPM*_*984 5 html javascript jquery keypress onkeypress
尝试做一些jQuery验证(没有插件 - 请不要回答"只需使用validate-js插件").
我正在为doc ready上的每个"必填字段" 连接一个客户端事件处理程序按键:
$(document).ready(function() {
$('#myform input.required').each(function() {
$(this).keypress(onRequiredFieldKeyPress);
});
});
Run Code Online (Sandbox Code Playgroud)
哪个正确地在每个按键上触发此事件:
function onRequiredFieldKeyPress() {
if ($(this).val().trim() == '') {
$(this).next('em').html('*').show(); // show req field indicator
} else {
$(this).next('em').html('*').hide(); // hide req field indicator
}
}
Run Code Online (Sandbox Code Playgroud)
但$(this).val()始终为null/empty.看起来它传递的是"HTMLInputElement",这是我所期望的,但它几乎就像我必须将其投影到其他jQuery类型中?
基本上我正在尝试这样做:在我已连接的任何字段的按键事件(这些都是输入元素)上,调用该函数.在该函数中,如果该字段的值为''(空),则显示隐藏字段,该字段显示必填字段指示符.
我真的不关心哪个实际元素触发了按键,因为我的逻辑行为将是相同的.我只需要获得实际价值.
我错过了什么吗?
因为您正在使用按键事件.按键有3个阶段:
1.按键按下:按键时按键
2.按住键:按住键
3.按键向上:键释放
在您的情况下,使用键盘事件可以解决问题
$(document).ready(function() {
$('#myform input.required').each(function() {
$(this).keyup(onRequiredFieldKeyPress);
});
});
Run Code Online (Sandbox Code Playgroud)