我在jsp中输入了文本字段,并使用onChange =“validation(this);”检查是否为空输入等,但当我使用tab键时,光标将移动到下一个字段,如何将光标保持在验证字段上?
function validation(id) {
var obj = document.getElementById(id);
obj.value = obj.value.toUpperCase();
if(value == "") {
obj.focus();
obj.select();
}
}
答案 0 :(得分:0)
在输入框中添加validation
按钮而不是onchange
事件。并且if(value == "")
值是未定义的,因此更改if条件并使其!Obj.value.trim()
捕获错误条件。 trim()
用于删除不需要的空间
<强>更新强>
与blur
一起使用
事件而不是onchange
。它只允许下一个输入,只有当前输入被填充。
function validation(obj) {
obj.value = obj.value.toUpperCase();
if(!obj.value.trim()) {
obj.focus();
//obj.select();
}
}
&#13;
<input id="input" type="text" onblur="validation(this,event)">
<input id="input" type="text" onblur="validation(this,event)">
&#13;
答案 1 :(得分:0)
您可以在'模糊'上添加事件。在检查了keyCode之后。对于tab键,它是0
。使用setTimeout,因为当一个onblur事件时,当前元素将失去焦点。因此,在重新关注元素之前提供足够的时间间隔
var obj = document.getElementById('inputField');
obj.addEventListener('blur', function(event) {
if (event.which === 0 && event.target.value == '') {
setTimeout(function(){
event.target.focus();
},1000)
}
})
<input id='inputField' onchange='validation(this.id)'>