在這裏,Web Components是非常有用的,但他們並沒有完全支持所有瀏覽器。
的想法是創建一個簡單的HTML元素,有兩個孩子(來和去),如下所示:
<div id="fromToDate">
<div></div>
<div></div>
</div>
然後創建一個模板,它定義了日期選擇器應該是什麼樣子:
<template id="fromToDateTemplate">
<label for="fromDate">from</label>
<input type="date" class="fromDate" select=":first" required="" />
<label for="toDate">to</label>
<input type="date" class="toDate" select=":last" required="" />
</template>
select參數定義,其中值取自所以第一個輸入字段採用「#fromToDate」中的第一個div。
最後,我們有填充「影子根」和定義的邏輯:
var shadow = document.querySelector('#fromToDate').webkitCreateShadowRoot(),
template = document.querySelector('#fromToDateTemplate');
shadow.appendChild(template.content);
shadow.querySelector(".fromDate").addEventListener("change", function (e) {
var to = this.value;
shadow.querySelector(".toDate").setAttribute("min", this.value);
});
template.remove();
在端兩個輸入字段renderd並且在第一日期選擇器選擇日期時,第二日期選擇器不能選擇較低的數據。
提琴手例如:http://jsfiddle.net/cMS9A/
優點:
- 構建小窗口
- 易reause
- 不會打破頁面
- 可以獨立風格的
總排行GES:
未來閱讀:
'min'和'max' attrs是'日期'格式,而不是元素\ –
@EL:我知道限制(或者說,規範將值限制爲ISO格式)用作顯示值之間所需關係的僞標記。我已經更新到[希望]刪除含糊之處,謝謝! –
簡單的做法是有一個日期選擇器和一個'天數'控制。 – robertc