繁体   English   中英

仅在文本框更改完成后使用带有 onChange 事件的 document.activeElement 来验证文本框

[英]Using document.activeElement with an onChange event to validate a textbox only after textbox change is completed

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

function validateTextBox(textBoxId) {
var textBox = document.getElementById(textBoxId);
如果(document.activeElement.id.= textBox.id){
做验证
}
}

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

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

它似乎有效,我只是对在没有一些审查和反馈的情况下使用它持怀疑态度。 我还没有看到任何类似的代码示例。 因此,请告诉我您对实施的想法以及您可能有的任何替代想法。

谢谢

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

如果您想在用户键入时进行验证,您可以使用 onkeydown/onkeyup/onkeypress 但这要困难得多。

此外,您可以使用this ,因此您不必为每个字段分配 id 并记住将其传递给 validate function:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM