我有一个文本框,每当框的值发生变化时,我想检查并查看是否输入了20位数字.
我以为我会使用onChange事件,但这似乎被解释为IE上的onBlur事件.
所以我想我会使用onKeyDown,但是如果用户想要将值粘贴到字段中,则会出现问题,然后函数永远不会被调用.
没有其他形式的盒子,所以我不能依靠onBlur或期望他们将永远改变焦点.
我该怎么做呢?
我只是想在每次文本框的值发生变化时评估文本框的值.
<input type="text" onKeyDown="myfunction()">
Run Code Online (Sandbox Code Playgroud)
And*_*y E 10
一个有效的方法是使用一个组合onkeydown和onpaste,这将在IE,火狐,Chrome和Safari工作.Opera在这里是奇怪的,因为它不支持onpaste所以你可能不得不回到onchangeOpera或使用DOMAttrModified变异事件,见下面的例子.
Internet Explorer也支持onpropertychange,每次属性更改元素时都会触发 - 包括value.我读过DOMAttrModifiedOpera和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();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23809 次 |
| 最近记录: |