2017-05-09 150 views
-3

我一直想讓Javascript觸發一個按鈕,將保存從幾個文本框中的值,並觸發按鈕輸入鍵後按下另一個元素加載值的重置按鈕。我知道2個按鈕可以正常工作,但是我爲按鍵觸發的Javascript代碼卻沒有。使按鈕觸發鍵2按鈕

例子:

比方說,我有這樣的Javascript代碼:

document.getElementById("savevalues") 
.addEventListener("keyup", function(event) { 
event.preventDefault(); 
if (event.keyCode == 13) { 
    document.getElementById("reset").click(); 
} 
}); 

而且讓我們說我有以下的HTML:

<html> 
<body> 
<button onclick="savevalues()" id="savevalues">Button 1</button> 
<button onclick="reset()" id="reset">Button 2</button> 
</body> 
</html> 

我在做什麼錯?如果您需要查看Javascript和HTML代碼,請訪問我的github項目鏈接:https://github.com/jamesestes1711/2048-hacked Javascript文件位於js文件夾中,名爲:game_manager.js,按鍵代碼位於文件的底部。 HTML代碼位於主文件夾中,名爲:play.html。

編輯

我試圖改變。點擊()reset()方法,仍然沒有改變。

+0

用'restart();'替換'document.getElementById(「restart」)。click();'或者觸發其他函數。 –

+0

你正在綁定keyup事件監聽器到一個按鈕,它將如何以及何時會調用? – Durga

+0

我已經修復了HTML中的重置並仍然執行相同的操作 –

回答

-1

對不起,錯過了'輸入'關鍵部分。

添加事件偵聽到文檔:

document.addEventListener("keyup", function(event) { 
    event.preventDefault(); 
    if (event.keyCode == 13) { 
    document.getElementById("reset").click(); 
    } 
}); 
+0

請您解釋一下多一點@Juan –

0

嘗試改變這種代碼:

document.getElementById("restart").click(); 

document.getElementById("reset").click(); 

使得JS的HTML元素相匹配

0

T他在這裏發佈的代碼應該除了使用「重置」作爲ID以及嘗試使用「重新啓動」引用它之外。

我看了一眼你的項目,你在那裏正確使用「重啓」。但是,在您的game_manager.js中,您嘗試使用document.getElementById("applyvalues")引用ID爲「savevalues」的元素。

這就是你的問題。

+0

我只是在做一個例子@Mikael –

+0

@ user7986429正如我所說的,我看了你實際項目中的代碼。 play.html包含'

+0

我修正了錯誤,仍然沒有改變。當我上傳這些文件時,我對play.html和game_manager.js進行了一些修改,但我忘記了自己的作用。HTML並沒有意識到,所以這可能是爲什麼它說@Mikael。我的原始代碼確實匹配,所以我不知道它爲什麼不起作用。 –