使用するときに日付を無効にすることは可能ですか?あるシナリオでは現在の日付を無効にし、他のシナリオでは将来の日付を無効にします。日付を無効にするにはどうすればよいですか?
min
またはmax
属性をinput type=date
に追加できます 。日付はISO形式(yyyy-mm-dd)である必要があります。これは多くのモバイルブラウザーとChromeの現在のバージョンでサポートされていますが、ユーザーは日付ピッカーを使用せずに無効な日付を手動で入力できます。
<input name="somedate" type="date" min="2013-12-25">
min
およびmax
属性は完全な日付でなければなりません。 「今日」または「+0
」を指定する方法はありません。そのためには、JavaScriptまたはサーバー側言語を使用する必要があります。
var today = new Date().toISOString().split('T')[0];
document.getElementsByName("somedate")[0].setAttribute('min', today);
http://jsfiddle.net/mblase75/kz7d2/
過去または将来の日付を許可しながら、今日のみを除外することは、ここでは選択肢ではありません。ただし、明日をmin
日付にしたい場合(今日と過去のすべての日付を削除)、 この質問 を参照してtoday
を1日増やします。
HTMLフォームに関連する他のすべての場合と同様に、クライアント側での制約方法に関係なく、常にサーバー側でフィールドを検証する必要があります。
HTML日付ピッカー(<input type=date>
)はmin
/max
属性をサポートしますが、 広くサポートされていません です。
それまでの間、 bootstrap-datepicker の使用を検討してください。v1.2.0は github です。
参照:
純粋なHTMLでは、日付に設定できる唯一の制限は、min
およびmax
属性を使用した下限と上限です。以下の例では、この質問を投稿している曜日のみが許可され、その他はグレー表示され、それらをクリックしても入力値は更新されません。
<input type="date" min="2019-06-02" max="2019-06-08"/>
JavaScriptの数行を使用して無効な日付を無効にすることもできますが、これはグレー表示された日付などのすべてのネイティブ<input type="date">
機能とともに出荷されません。無効な日付の場合、日付値を''
に設定すると、エラーメッセージが表示される場合があります。週末の日付を受け入れない入力の例を次に示します。
// Everything except weekend days
const validate = dateString => {
const day = (new Date(dateString)).getDay();
if (day==0 || day==6) {
return false;
}
return true;
}
// Sets the value to '' in case of an invalid date
document.querySelector('input').onchange = evt => {
if (!validate(evt.target.value)) {
evt.target.value = '';
}
}
<input type="date"/>
これを使用して、将来の日付を無効にすることができます。
あなたの中 document.ready
関数、場所
//Display Only Date till today //
var dtToday = new Date();
var month = dtToday.getMonth() + 1; // getMonth() is zero-based
var day = dtToday.getDate();
var year = dtToday.getFullYear();
if(month < 10)
month = '0' + month.toString();
if(day < 10)
day = '0' + day.toString();
var maxDate = year + '-' + month + '-' + day;
$('#dateID').attr('max', maxDate);
そして形で
<input id="dateID" type="date"/>
これが動作です jFiddle Demo