【发布时间】:2016-02-24 05:13:24
【问题描述】:
document.getElementById('my').onkeypress = function(event) {
this.value = this.value.toUpperCase()
}
<input id='my' type="text">
有人可以向我解释一下上面代码中的this 变量指向什么吗?它是否指向我从document.getElementById('my) 抓取的输入 html 元素?还是它指向浏览器中的窗口对象?还有传入匿名函数的event参数是什么?
由于某种原因,当我运行此代码时,每个字符的值都是大写的,除了最后一个字符。例如,当我输入:字符 a 不会立即大写,只有在我输入另一个字母时才会大写。例如:Ab。现在 b 不是大写的,直到我在 b 之后输入另一个字母:ABc。这种情况还在继续。有人能解释一下为什么会这样吗?
【问题讨论】:
-
试试
onkeydown? -
this指的是#my 元素。 -
如果可能,您能否在代码 sn-p 或 jsfiddle 中重新创建问题?
-
onkeypress在输入的字符“提交”到元素值之前触发。 -
收听
keyup事件。
标签: javascript html