使用tab键时如何在验证后保持焦点

时间:2017-06-05 04:31:01

标签: javascript jsp tabs cursor

我在jsp中输入了文本字段,并使用onChange =“validation(this);”检查是否为空输入等,但当我使用tab键时,光标将移动到下一个字段,如何将光标保持在验证字段上?

function validation(id) {
    var obj = document.getElementById(id);
    obj.value = obj.value.toUpperCase();

    if(value == "") {
        obj.focus();
        obj.select();
    }
 }

2 个答案:

答案 0 :(得分:0)

在输入框中添加validation按钮而不是onchange事件。并且if(value == "")值是未定义的,因此更改if条件并使其!Obj.value.trim()捕获错误条件。 trim()用于删除不需要的空间

<强>更新

blur一起使用 事件而不是onchange。它只允许下一个输入,只有当前输入被填充。

&#13;
&#13;
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;
&#13;
&#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)'>