人到中年有點(diǎn)甜
2021-07-11 12:01:09
我創(chuàng)建了一些代碼,可以向上或向下舍入輸入的數(shù)字,具體取決于整數(shù)是偶數(shù)還是奇數(shù)。我已經(jīng)解決了這個(gè)問題,但是現(xiàn)在我想將我的代碼放入一個(gè)循環(huán)中,該循環(huán)將不斷提示用戶輸入另一個(gè)數(shù)字,直到他們輸入像“x”這樣的值。我想要發(fā)生的是頁面在再次提示用戶之前使用計(jì)算值更新。我還無法弄清楚如何做到這一點(diǎn),因此我的問題在這里。有沒有辦法做到這一點(diǎn),還是我的做法都錯(cuò)了?Javascript:function main() { var n = prompt("Enter A Number\nCan Be A Whole Number Or Decimal Number With One Decimal Place.\nOr Enter x To Exit."); while (n != "x") { var nn = 0 if (n.includes(".")) { var n = parseFloat(n); q = Math.trunc(n); if (q % 5 == 0) { if ((n % 1) >= 0.5) { nn = (Math.ceil(n)); } else if ((n % 1) < 0.5) { nn = (Math.floor(n)); } } else { if ((n % 1) <= 0.5) { nn = (Math.floor(n)); } else if ((n % 1) > 0.5) { nn = (Math.ceil(n)); } } document.getElementById("orgNum").innerHTML = "Original Number: " + n; document.getElementById("roundNum").innerHTML = "Rounded Number: " + nn setTimeout(main, 5000); } else { document.getElementById("orgNum").innerHTML = "Original Number: " + n; document.getElementById("roundNum").innerHTML = "Rounded Number: Whole Number Was Entered." setTimeout(main, 5000); } setTimeout(main, 5000); var n = prompt("Enter Another Number\nCan Be A Whole Number Or Decimal Number With One Decimal Place.\nOr Enter x To Exit.") }}HTML:<div id="wrapper"> <div id="dataEntry"> <input type="button" id="subButton" value="Begin" onClick="main()"> </div> <div id="dataPrint"> <p id="orgNum">Original Number: </p> <p id="roundNum">Rounded Number: </p> </div></div>我在這里缺少什么?任何幫助將不勝感激。
1 回答

翻閱古今
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超5個(gè)贊
瀏覽器中的 Javascript 與 ui 一起在單個(gè)線程中運(yùn)行。使用循環(huán)接管該線程,正如您的代碼嘗試執(zhí)行的那樣,將阻止 ui 運(yùn)行,包括允許用戶在輸入中輸入文本。
您需要使用事件偵聽器,而不是您的 while 循環(huán)。
您可以將 onkeyup 事件偵聽器附加到您的輸入,它會(huì)查找輸入鍵(鍵碼 13),或者將您的輸入放入一個(gè)表單并將 onsubmit 事件偵聽器附加到該表單。
此事件偵聽器將在輸入字段中查找“x”字符:如果找到,則完成(您可以隱藏輸入和/或在頁面上放置一條消息,指示不再需要輸入)。
如果找不到 x,請進(jìn)行四舍五入并清除輸入值。完成舍入/清除后,用戶將能夠輸入另一個(gè)值,按 Enter 鍵,這將再次觸發(fā)事件偵聽器,依此類推,直到檢測到“x”。
添加回答
舉報(bào)
0/150
提交
取消