我想将用户在html表单的文本字段中输入的内容转换为大写:
<input type="text" id="inputword" name="inputword">
我在keyup事件上为该输入元素添加了一个事件监听器:
document.getElementById("inputword").addEventListener("keyup", myFunction);
这是触发“keyup”事件时调用的函数
function myFunction() {
// Convert to uppercase on keyup event
this.value = this.value.toUpperCase();
}
这很有效。当用户键入字符时,它会在输入文本字段中以大写字母显示(在函数内使用 this.value
现在,我想将参数传递给函数。据我所知,使用时传递参数 addEventListener()方法,需要“匿名函数”。
我正在尝试以这种方式将String传递给函数:
document.getElementById("inputword").addEventListener("keyup", function() {
myFunction("TEST");
});
function myFunction(myString) {
// Convert to uppercase on keyup event
this.value = this.value.toUpperCase();
... // do other things
}
但现在,当我在文本字段中输入内容时,出现以下错误:
myscript.js:32 Uncaught TypeError: Cannot read property 'toUpperCase' of undefined(…)
在注册事件时使用“匿名函数”后似乎不再定义“ this.value ”。有没有办法在我的函数中访问“ this ”?
我的javascript代码位于html正文末尾的外部文件中:
<script src="js/myscript.js"></script>
</body>