gpt4 book ai didi

值更改时的Javascript文本框调用事件

转载 作者:行者123 更新时间:2023-12-04 22:52:20 25 4
gpt4 key购买 nike

我有一个文本框,每当框的值发生变化时,我想检查一下是否输入了 20 位数字。
我以为我会使用 onChange事件,但这似乎被解释为 onBlur IE 上的事件。
所以我想我会用onKeyDown ,但是如果用户想将一个值粘贴到字段中,那么问题就来了,那么该函数永远不会被调用。
没有其他表单框,所以我不能依赖 onBlur或者期望他们会改变焦点。
我该怎么做呢?
我只想在每次文本框的值更改时评估文本框的值。

<input type="text" onKeyDown="myfunction()">

最佳答案

一种有效的方法是使用 onkeydown 的组合。和 onpaste ,它可以在 IE、Firefox、Chrome 和 Safari 中运行。 Opera 很奇怪,因为它不支持 onpaste所以你可能不得不退回到onchange对于 Opera 或使用 DOMAttrModified突变事件,请参见下面的示例。

Internet Explorer 还支持 onpropertychange , 每次元素的属性更改时都会触发 -- 包括 value .我读过 DOMAttrModified受 Opera 和 Safari 支持(不确定 Firefox),因此您可以将其与 IE 的 onpropertychange 结合使用(未经测试):

if ("implementation" in document &&
document.implementation.hasFeature('MutationEvents','2.0'))
myInput.addEventListener("DOMAttrModified", valueChanged, false);
else if ("onpropertychange" in myInput)
myInput.onpropertychange = valueChanged;

function valueChanged (evt)
{
var attr;
evt = evt || window.event;
attr = evt.attrName || evt.propertyName;

if (attr == "value")
validate();
}

关于值更改时的Javascript文本框调用事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2829491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com