我被以下問題困住了:我怎樣才能確定一個輸入的日期欄位是否被不完全提交?例如,如果我發送12/09/aaa作為一個值,實際發送的值是null,這與我發送gg/mm/aaa得到的值相同,也就是空值。有沒有辦法通過JS來區分這兩種情況?(事實上,我使用的是Vue.js,但我認為這并不重要。)
謝謝您的幫助。
預先感謝!
uj5u.com熱心網友回復:
tl;dr:不,不是原生的
。問題在于
。如果你使用原生的HTML日期輸入,就沒有辦法區分部分填充的狀態和完全空的狀態,因為根據規范,原生的HTML日期輸入必須是空的或者有一個有效的日期:
4.10.5.1.7 日期狀態(type=date)
[...] 用戶代理不得允許用戶將值設定為不是有效的日期字串的非空字串。[...]
value屬性,如果被指定并且不是空的,必須有一個有效的日期字串的值。
值消毒演算法如下。如果該元素的值不是有效的日期字串,則將其設定為空字串。
這意味著,當輸入被部分填充時,無論觸發什么表單或輸入事件(submit,change,等等),輸入的值將是一個空字串。
解決方案
你必須建立你自己的自定義日期輸入。uj5u.com熱心網友回復:
你可以使用regex,在這種情況下,驗證所提供的輸入是否是有效的日期格式。
你可以使用下面的詞組
你可以使用以下的詞組
/^d{2}/d{2}/d{4}$/。
在答案中提到規則運算式來驗證日期時間格式(MM/DD/YYYY)
你可以在JS中使用(str).match(regex)來使用這一特性。
我已經分享了一種使用方法,regex可以根據使用情況進行更新。
uj5u.com熱心網友回復:
let date = new Date('12/09/aaa');
date == 'Invalid Date' //這將在日期無效時回傳true
。轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/326108.html
標籤:
上一篇:已發出SVG檔案,但在單個spa反應模塊中似乎已損壞。如何在單spa專案中加載SVG檔案?
下一篇:表單輸入上的HTML表格
