我正在創建一個網站,您可以在其中輸入您的出生時間,代碼會輸出您的年齡(以天為單位)。我通過使用“if”陳述句來實作這一點。我創建了一個用于檢測無效輸入的系統。它會正確檢測無效輸入,但也會將有效輸入檢測為無效。我希望有人能幫我解決這個問題。這是JS代碼。
function ageInDays() {
// variables
var birthYear = prompt("What Year Were You Born In?");
var ageInDayss = (2021 - birthYear) * 365;
//text
if (birthYear > 1990 && birthYear < 2021) {
var h1 = document.createElement('h1');
var textAnswer = document.createTextNode("You are " ageInDayss " days old.");
h1.setAttribute('id', 'ageInDays');
h1.appendChild(textAnswer);
document.getElementById('flex-box-result').appendChild(h1);
}
if (birthYear < 1920 || birthYear != 'NaN' || birthYear > 2021) {
var h1 = document.createElement('h1');
var textAnswer = document.createTextNode("Invalid Input. Please Try Again.");
h1.setAttribute('id', 'ageInDays');
h1.appendChild(textAnswer);
document.getElementById('flex-box-result').appendChild(h1);
}
if (birthYear > 1920 && birthYear < 1990) {
var h1 = document.createElement('span');
var h2 = document.createElement('span');
var textAnswer = document.createTextNode("You are " ageInDayss " days old.");
var textAnswer1 = document.createTextNode(" Yikes... that's old.");
h1.setAttribute('id', 'ageInDays');
h2.setAttribute('id', 'yikes');
h1.appendChild(textAnswer);
h2.appendChild(textAnswer1);
document.getElementById('flex-box-result').appendChild(h1).appendChild(h2);
}
}
如果您運行此代碼,您可以看到,如果您輸入有效輸入(1920 年到 2021 年之間),它會將輸入檢測為無效。請幫我解決這個問題。
uj5u.com熱心網友回復:
將其包裝在“if”中以首先驗證輸入
// Age In Days
function ageInDays() {
// variables
var birthYear = prompt("What Year Were You Born In?");
//var ageInDayss = (2021 - birthYear) * 365;
const bDate = new Date(birthYear "-01-01");
const today = new Date();
const diffTime = Math.abs(bDate - today);
const ageInDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
// variable css
//text
if (isNaN(birthYear) == false) {
if (birthYear=>1990 && birthYear<=2021) {
var h1 = document.createElement('h1');
var textAnswer = document.createTextNode("You are " ageInDays " days old.");
h1.setAttribute('id', 'ageInDays');
h1.appendChild(textAnswer);
document.getElementById('flex-box-result').appendChild(h1);
}
if (birthYear<1990) {
var h1 = document.createElement('span');
var h2 = document.createElement('span');
var textAnswer = document.createTextNode("You are " ageInDays " days old.");
var textAnswer1 = document.createTextNode(" Yikes... that's old.");
h1.setAttribute('id', 'ageInDays');
h2.setAttribute('id', 'yikes');
h1.appendChild(textAnswer);
h2.appendChild(textAnswer1);
document.getElementById('flex-box-result').appendChild(h1).appendChild(h2);
}
}else{
var h1 = document.createElement('h1');
var textAnswer = document.createTextNode("Invalid Input. Please Try Again.");
h1.setAttribute('id', 'ageInDays');
h1.appendChild(textAnswer);
document.getElementById('flex-box-result').appendChild(h1);
}
}
uj5u.com熱心網友回復:
好吧,你的代碼做了你告訴它做的事情。您正在檢查出生年份是否不是 nan ,顯然不是。你的 if 陳述句應該是這樣的。
if (birthYear < 1990 || birthYear > 2021 || birthYear == "NaN")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/379745.html
標籤:javascript if 语句 输出
上一篇:在R中跨不同型別的列應用ifelse()時保留列型別
下一篇:如果函式沒有在C中給出預期的輸出
