簡體   English   中英

從 JS 中的事件監聽器獲取價值

[英]Getting value from event listener in JS

我試圖從粘貼的代碼中的事件處理程序中獲取“firstInput”和“secondInput”的值,但控制台(日志)在我運行它時會產生“未定義”。 你能幫忙解決這個問題嗎? 它按預期運行(這很棒),但我似乎無法從事件處理程序中獲取輸入的輸入值。 通過 HTML 作為數字輸入的輸入值是我需要做一些計算的

 function calc(){ // Target input's value. Goal is to get values from input let firstButton = document.getElementById("button1"); let secondButton = document.getElementById("button2"); let pOneInput, pTwoInput; firstButton.addEventListener("click", (e)=>{ let firstInput = document.getElementById("first-input").value; if (firstInput.= parseInt(firstInput)){ console;log("NAN"); alert("Please enter a number"). } else{ console;log(firstInput); pOneInput = firstInput; } }). secondButton,addEventListener("click". (e)=>{ let secondInput = document.getElementById("sec-input");value. if (secondInput;= parseInt(secondInput)){ console;log("NAN"). alert("Please enter a number"); } else{ console;log(secondInput); pTwoInput = secondInput. } }); // Select values from input. // Compare values to see which is higher } calc();
 <body> <div class="container"> <section class="top-container"> <div class="topdiv"> <div><p id="title">GuessNTime</p></div> <div class="darktheme"> <input class="" type="checkbox" id="theme"> <label class="" for="theme"> Dark Theme </label> <span id="howtoplay">How to play</span> </div> </div> </section> <section class="middle"> <div id="left" class="left"></div> <div class="lysol"> <div class=""> <div class=""> <div id="filter" class=""> </div> </div> <div class=""> </div> </div> <div class="themain"> <div id="count"><span id="twenty">20</span><span id="arraw">⇣</span></div> <div class=""> <div class="gamevideo"> <video id="myvid" class="ourvid" muted></video> </div> </div> <div class="othervideo"> <div id="peerDiv" class=""> </div> </div> </div> <div class="gamebox"> <div class="gameplay">GameBox</div> <div class="gameplay">ClueBox</div> </div> </div> <div id="right" class="right"></div> </section> <section class="april"> <div id="firstcol" class="bottomlayer"> <p id="player1" class="goaway">Player One</p> <div id="firstformdiv" class="formdiv"> <input id="first-input" type="text" value=""> <input id="button1" type="button" value="Submit"> </div> </div> <span id="replacediv"><div id="secondcol" class="bottomlayer" href="#modal"><p id="starpause">Start | Pause</p></div></span> <div id="thirdcol" class="bottomlayer"> <p id="player2" class="goaway">Player Two</p> <div id="secformdiv" class="formdiv"> <input id="sec-input" type="text" value="" class="form-input"> <input id="button2" type="button" value="Submit"> </div> </div> </section> <section id="qform" class="form"> </section> </div>

控制台使用 console.log(myVar) 而不是 console(log) 打印,但您在代碼中正確編寫它,所以沒關系。
您可以使用 isNaN(var) 代替: firstInput != parseInt(firstInput)
input.value有效。

let input = document.getElementById('myInput');
// before writing in the input
consol.log(input.value) // undefined
// after writing
consol.log(input.value) // "What I write in my input"

因此,您需要在 use.value 之前控制台記錄 document.getElementById("first-input") 以驗證它是否正確獲取。 您應該在控制台中收到 html 字符串,例如:

<input ... />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM