![](/img/trans.png)
[英]I am new to JavaScript. please help me for javascript validation
[英]I'm unable to find a previous date by inputing a given date by a user using html and javascript. Can you please help me out
'這是 HTML 代碼'
<form>
<div class="input-field">
<label>Choose Date</label>
<input type="date" id="date" onchange="myDate();" required>
</div>
<div class="input-fields">
<label>Previous Date</label>
<input type="date" id="previous" readonly>
</div>
</form>
'這是 Javascript 代碼'
<script>
function myDate()
{
const currDate = document.getElementById("date");
const date = new Date(currDate)
if (typeof date === 'object' && date !== null && 'getDate' in date) {
console.log("The data type is", typeof date)
console.log(date.getDate())}
else {
console.log("Invalid Date Object")
}
date.setDate(date.getDate()-1);
const previous = document.write(date);
document.getElementById("previous").value = previous;
}
</script>
我正在嘗試通過在 Javascript 中使用 myDate 函數來獲取上一個日期,但我收到錯誤 getDate is not a function 然后我嘗試將 getDate 作為函數,現在它顯示相同的錯誤。 我無法將 getDate 作為函數或獲取以前的日期值
這是適合您的解決方案。
您遇到的第一個問題是您在currDate
中獲得了元素而不是值。
在那之后,我不明白你試圖對你previous
的變量做什么,但是你用更新的日期覆蓋了實際的DOM
。
最后,您必須將要在另一個字段上設置的日期轉換為接受的字符串,因此您需要截斷toISOString()
方法以返回格式為YYYY-MM-DD
的日期(因為這就是您如果從初始輸入中讀取)。
function myDate()
{
const currDate = document.getElementById("date").value;
const date = new Date(currDate)
if (typeof date === 'object' && date !== null && 'getDate' in date) {
console.log("The data type is", typeof date)
console.log(date.getDate())}
else {
console.log("Invalid Date Object")
}
date.setDate(date.getDate()-1);
document.getElementById("previous").value = date.toISOString().split('T')[0];
}
問題在於new Date(currDate)
在這里您使用element
創建新日期,因此您需要執行new Date(currDate.value)
然后您需要根據日期選擇器接受的日期來格式化日期yyyy-MM-DD
。
function myDate() { const currDate = document.getElementById("date"); const date = new Date(currDate.value) if (typeof date === 'object' && date !== null && 'getDate' in date) { console.log("The data type is", typeof date) console.log(date.getDate()) } else { console.log("Invalid Date Object") } date.setDate(date.getDate() - 1); document.getElementById("previous").value = formateDate(date); } function formateDate(d) { return d.getFullYear() + '-' + ("0" + (d.getMonth() + 1)).slice(-2) + '-' + ("0" + d.getDate()).slice(-2) ; }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> </style> </head> <body> <form> <div class="input-field"> <label>Choose Date</label> <input type="date" id="date" onchange="myDate();" required> </div> <div class="input-fields"> <label>Previous Date</label> <input type="date" id="previous"> </div> </form> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.