将document.activeElement与onChange事件一起使用,仅在文本框更改完成后验证文本框

时间:2011-04-28 21:01:05

标签: javascript textbox validation

我已在我的开发系统上实现了以下代码的版本。

  

function validateTextBox(textBoxId){
  var textBox = document.getElementById(textBoxId);
  if(document.activeElement.id!= textBox.id){
   进行验证
  }
      }

HTML类似于:
<input type="text" id="ValidateMe" onChange="validateTextBox('ValidateMe');"/>

这个想法是只有在用户完成编辑文本框之后才进行验证,并且与onBlur事件不同,验证仅在文本框的值实际更改时触发。

似乎工作我只是在没有一些评论和反馈的情况下使用它。 我没有看到任何类似的代码示例。请告诉我您对实施的看法以及您可能提出的任何其他想法。

由于

1 个答案:

答案 0 :(得分:0)

这是一个很好的解决方案。请记住,onchange事件通常只会在焦点发生变化时触发(即onblur)

如果您想在用户输入时进行验证,可以使用onkeydown / onkeyup / onkeypress,但这样做会更加困难。

此外,您可以使用this,因此您不必为每个字段分配ID,并记住将其传递给验证功能:

function validate(input_element) {
    alert(input_element.value)
}
<input type="text" name="name" onchange="validate(this);"/>