我正在努力解决以下问题。 我有一个带有按钮的HTML页面,当用鼠标单击按钮时,该按钮会更改它的名称/值。我还希望在键盘上按键时更改此值,但我无法解决此问题。
按钮的代码如下:
<input type ="button" name="pin" value="PIN" id="toggle1" onclick="myFunctionPIN(this)">
它调用myFunctionPIN(this)
函数,如下所示:
function myFunctionPIN(obj) {
if (obj.value == "PIN")
obj.value = "CASH", myform.pin2.value = "CASH";
else
obj.value = "PIN", myform.pin2.value = "PIN";
}
这会将按钮的值更改为&#34; CASH&#34;或&#34; PIN&#34;。当一个人输入字母时,我现在也会尝试进行此更改。在它的键盘上。为此,我添加了一个eventListener:
document.addEventListener("keydown", keyDownTextField, false);
function keyDownTextField(c) {
var keyCode = c.keyCode;
if(keyCode==67) {
myFunctionPIN();
}
}
我试图以几种方式调用myFunctionPIN:
myFunctionPIN(this)
,myFunctionPIN(obj)
,call(myFunctionPin(this))
,但无济于事。有没有办法让按钮的值随着按下c&#39;而变化。按钮,还是我需要以不同的方式进行设置?
如果有人花时间阅读并理解问题,请提前致谢:)
答案 0 :(得分:0)
您需要显式获取DOM元素对象(addEventListener
没问题)。我也建议不要使用&#34; onclick&#34;属性(特别是在你已经使用<input type ="button" name="pin" value="PIN" id="toggle1">
的情况下):
var myElement = document.getElementById('toggle1');
function myFunctionPIN() {
myElement.value = myElement.value == "PIN" ? "CASH" : "PIN";
}
function keyDownTextField(c) {
if(c.keyCode == 38) {
myFunctionPIN();
}
}
myElement.addEventListener("click", myFunctionPIN, false);
document.addEventListener("keydown", keyDownTextField, false);
代码:
{{1}}