簡體   English   中英

HTML用戶輸入的JavaScript問題

[英]JavaScript problems with HTML user input

很抱歉,如果這個問題是某處回答,但我找不到任何接近我的問題或其他職位的答案。
我正在嘗試創建博客,但我仍在學習,因此我使用索引頁面進行實驗。 無論如何,我在網頁上有一個部分,您會在其中獲得依賴於用戶輸入的輸出,而我無法從網頁中獲取JavaScript所接收的輸入。

請注意 ,我只在便攜式計算機上的Microsoft Edge和手機上的Firefox中嘗試過此操作,但我認為這不是我的瀏覽器。

另外,我認為它會影響我的計算器,但這不是本文的目的。
請隨意在答案中編輯我的代碼,但最好解釋一下對代碼的編輯。
無論如何,在此先感謝您願意提供的任何幫助!
請注意 還沒有 發現 回答 我的 問題 任何 信息所以 鏈接 關閉 職位 之前 :)
此外 空格 未來 的代碼 萬一 有人 明白 一點

 function age(){ var age=document.getElementById('age'); if(age<18){ document.getElementById('Age').innerHTML="Underage"; alert("This is your age: "+age); } else{document.getElementById('Age').innerHTML="Of age"; alert("This is your age: "+age); } } function calculate(){ var num1=document.getElementById('firstNumber'); var num2=document.getElementById('secondNumber'); var sum=num1+num2; document.getElementById('Age').innerHTML=sum; } 
 .page{background-color:#ce6efa;} #firstHeading{font-family:Nyala, "Palatino Linotype";} label{color:#5728ad;} #Age{color:#243bd4;} 
 <!DOCTYPE html> <!--Work on this blog began on the 24th of June 2017--> <html> <meta charset="UTF-16"> <head> <link rel="stylesheet" href="mainpage.css"> <title>Sandi Vujaković</title> </head> <body class="page"> <h2 id="firstHeading">My life</h2> <label>First number</label> <input type="number" id="fistNumber" name="Number a"> <label>Second number</label> <input type="number" id="secondNumber" name="Number b"> <input type="submit" onclick="calculate()" value="Calculate"><br/> <p id="calc"></p> <label>Age</label> <input type="number" id="age" name="age"> <input type="submit" onclick="age()" value="Check"><br/> <p id="Age"></p> <script src="mainpage.js"></script> </body> </html> 

如果我使用alert() ,則會得到奇怪的結果。 就像代碼中一樣,輸出是

This is your age: [object HTMLInputElement]

當我將其更改為:

var age2=++age; 
alert("This is your age: "+age2);

然后輸出從[object HTMLInputElement]NaN

解釋嗎?

好的?

最初,我發現了一些不一致之處:

1-“ var age = document.getElementById('age')”無法報告需要哪個屬性。 在您的情況下:“值”。 在“計算”功能中,我在前兩行遇到了相同的問題

2-“ var num1 = document.getElementById('fistNumber')”元素ID錯誤。 我已更正“ firstNumber”

3-在您比較“計算”函數中捕獲的值的年齡和總和的兩個時刻中,我使用了“ parseInt”函數來防止變量被視為字符串並因此被連接。

我希望能有所幫助。

 function age(){ var age=document.getElementById('age').value; if(parseInt(age)<18){ document.getElementById('Age').innerHTML="Underage"; alert("This is your age: "+age); } else{alert("This is your age: "+age); } } function calculate(){ var num1=document.getElementById('firstNumber').value; var num2=document.getElementById('secondNumber').value; var sum=parseInt(num1)+parseInt(num2); document.getElementById('Age').innerHTML=sum; } 
 .page{background-color:#ce6efa;} #firstHeading{font-family:Nyala, "Palatino Linotype";} label{color:#5728ad;} #Age{color:#243bd4;} 
 <!DOCTYPE html> <!--Work on this blog began on the 24th of June 2017--> <html> <meta charset="UTF-16"> <head> <link rel="stylesheet" href="mainpage.css"> <title>Sandi Vujaković</title> </head> <body class="page"> <h2 id="firstHeading">My life</h2> <label>First number</label> <input type="number" id="firstNumber" name="Number a"> <label>Second number</label> <input type="number" id="secondNumber" name="Number b"> <input type="submit" onclick="calculate()" value="Calculate"><br/> <p id="calc"></p> <label>Age</label> <input type="number" id="age" name="age"> <input type="submit" onclick="age()" value="Check"><br/> <p id="Age"></p> <script src="mainpage.js"></script> </body> </html> 

您需要獲取屬性的“值”:document.getElementById('age')。value;

另外,您的名字輸入ID拼寫錯誤。 “ fistNumber”

 function age() { var age = document.getElementById('age').value; if(age == "" || age == null) { alert("Please enter an age!"); return; } if (parseInt(age) < 18) { document.getElementById('alert').innerHTML = "Underage"; alert("This is your age: " + age); } else { document.getElementById('alert').innerHTML = "Of Age"; alert("This is your age: " + age); } } function calculate() { var num1 = document.getElementById('firstNumber').value; var num2 = document.getElementById('secondNumber').value; var sum = parseInt(num1) + parseInt(num2); document.getElementById('alert').innerHTML = sum; } 
 .page { background-color: #ce6efa; } #firstHeading { font-family: Nyala, "Palatino Linotype"; } label { color: #5728ad; } #Age { color: #243bd4; } 
 <!DOCTYPE html> <!--Work on this blog began on the 24th of June 2017--> <html> <meta charset="UTF-16"> <head> <link rel="stylesheet" href="mainpage.css"> <title>Sandi Vujaković</title> </head> <body class="page"> <h2 id="firstHeading">My life</h2> <label>First number</label> <input type="number" id="firstNumber" name="Number a"> <label>Second number</label> <input type="number" id="secondNumber" name="Number b"> <input type="submit" onclick="calculate()" value="Calculate"><br/> <p id="calc"></p> <label>Age</label> <input type="number" id="age" name="age"> <input type="submit" onclick="age()" value="Check"><br/> <p id="alert"></p> <script src="mainpage.js"></script> </body> </html> 

所以這是我所做的更改:

  1. 首先,使用通過id獲取的dom元素的屬性value
  2. 然后更正HTML中firstNumber的拼寫。 您輸錯了fistNumber
  3. 同樣,在比較age函數中的(x<18)之前,必須使用parseInt函數將字符串轉換為整數。

 function age(){ var age=document.getElementById('age').value; age = parseInt(age); if(age<18){ document.getElementById('Age').innerHTML="Underage"; alert("This is your age: "+age); } else{alert("This is your age: "+age); } } function calculate(){ var num1=document.getElementById('firstNumber').value; var num2=document.getElementById('secondNumber').value; var sum=num1+num2; document.getElementById('Age').innerHTML=sum; } 
 .page{background-color:#ce6efa;} #firstHeading{font-family:Nyala, "Palatino Linotype";} label{color:#5728ad;} #Age{color:#243bd4;} 
 <!DOCTYPE html> <!--Work on this blog began on the 24th of June 2017--> <html> <meta charset="UTF-16"> <head> <link rel="stylesheet" href="mainpage.css"> <title>Sandi Vujaković</title> </head> <body class="page"> <h2 id="firstHeading">My life</h2> <label>First number</label> <input type="number" id="firstNumber" name="Number a"> <label>Second number</label> <input type="number" id="secondNumber" name="Number b"> <input type="submit" onclick="calculate()" value="Calculate"><br/> <p id="calc"></p> <label>Age</label> <input type="number" id="age" name="age"> <input type="submit" onclick="age()" value="Check"><br/> <p id="Age"></p> <script src="mainpage.js"></script> </body> </html> 

暫無
暫無

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

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