我正在預訂電影票的網站上工作。我應該如何設置min
屬性來阻止HTML5日期選擇器中的過去日期? (我不想使用提到的here的PHP解決方案。)HTML5日期選擇器阻止過去的日期
是否有純HTML5/Javascript解決方案?
我正在預訂電影票的網站上工作。我應該如何設置min
屬性來阻止HTML5日期選擇器中的過去日期? (我不想使用提到的here的PHP解決方案。)HTML5日期選擇器阻止過去的日期
是否有純HTML5/Javascript解決方案?
當文檔加載時禁用日期輸入。運行一個onload
函數,將當天的日期以所需的格式插入到最小字段中。
function onLoad() {
var input = document.getElementById("dateField");
var today = new Date();
// Set month and day to string to add leading 0
var day = new String(today.getDate());
var mon = new String(today.getMonth()+1); //January is 0!
var yr = today.getFullYear();
if(day.length < 2) { day = "0" + day; }
if(mon.length < 2) { mon = "0" + mon; }
var date = new String(yr + '-' + mon + '-' + day);
input.disabled = false;
input.setAttribute('min', date);
}
document.addEventListener('load', onLoad, false);
<body>
<input id="dateField" type="date" disabled />
</body>
這是一個小提琴:http://jsfiddle.net/tj9Xh/2/
我更新的一天也是一個字符串。這是第27次,所以直到事實發生之後,我纔想起個位數日期。 – atxpunkrock
試試這個:
<input id="dateField" type="date"/>
var dt= new Date();
var yyyy = dt.getFullYear().toString();
var mm = (dt.getMonth()+1).toString(); // getMonth() is zero-based
var dd = dt.getDate().toString();
var min = yyyy +'-'+ (mm[1]?mm:"0"+mm[0]) +'-'+ (dd[1]?dd:"0"+dd[0]); // padding
alert(min);
$('#dateField').prop('min',min);
如果你真的是說HTML5'',而不是一些jQuery插件,只要設置'min =「2014-01-01」'就足夠了。 – Passerby
這將是靜態的。我如何使它動態? –
你是什麼意思的「動態」?您始終可以使用DOM來操作屬性,這都是標準的。 – Passerby