ホームページ > ウェブフロントエンド > jsチュートリアル > マスター日付入力コントロール: HTML フォームでの過去の日付の無効化

マスター日付入力コントロール: HTML フォームでの過去の日付の無効化

王林
リリース: 2024-09-06 13:00:31
オリジナル
799 人が閲覧しました

Master Date Input Control: Disabling Past Dates in HTML Forms

ユーザーが日付を選択する必要があるフォームを操作する場合、特に予定の予約や予約の作成などのシナリオでは、ユーザーが過去の日付を選択できないようにする必要があることがよくあります。これは多くのアプリケーションで共通の要件であり、幸いなことに、HTML と JavaScript はこれを処理する簡単な方法を提供します。

HTML日付入力

type="date" の要素を使用すると、ユーザーは日付を簡単に選択できます。ただし、デフォルトでは、ユーザーは過去の日付を含む任意の日付を選択できます。ユーザーが当日より前の日付を選択できないようにするには、JavaScript と組み合わせて min 属性を使用します。

HTML 日付入力の例

簡単な日付入力の例を次に示します:

<input type="date" id="reservationDate" name="reservationDate" />
ログイン後にコピー

過去の日付の無効化

ユーザーが過去の日付を選択できないようにするには、 の min 属性を設定する必要があります。分野。 min 属性は、選択できる最小の日付を指定します。

JavaScript の Date オブジェクトを使用して現在の日付を動的に設定し、必要な YYYY-MM-DD 形式にフォーマットして、min 属性に適用できます。

Reactでの実装

React ユーザーの場合、これを TextField コンポーネントに統合する方法は次のとおりです。

import { TextField } from "@mui/material";
import { Field } from "formik";

const ReservationDateField = ({ touched, errors }) => {
  return (
    <Field
      as={TextField}
      label="Reservation Date"
      type="date"
      name="reservationDate"
      fullWidth
      margin="normal"
      InputLabelProps={{ shrink: true }}
      InputProps={{
        inputProps: {
          min: new Date().toISOString().split("T")[0], // Disable past dates
        },
      }}
      error={touched.reservationDate && Boolean(errors.reservationDate)}
      helperText={touched.reservationDate && errors.reservationDate}
    />
  );
};
ログイン後にコピー

壊す:

  • 日付の形式: new Date().toISOString().split("T")[0] は、今日の日付を YYYY-MM-DD 形式で返します。これは min 属性に必要です。
  • min 属性: これにより、ユーザーは今日以降の日付のみを選択できるようになります。

これがなぜ重要なのでしょうか?

次のような将来のイベントを管理するフォームでは、過去の日付を制限することが不可欠です。

  • 予約をします。
  • 配達のスケジュールを設定します。
  • 将来のリマインダーを設定します。

無効な日付の選択を防ぎ、ユーザー エラーの可能性を減らすことでユーザー エクスペリエンスを向上させます。

結論

過去の日付を無効にすることは、フォームを改善するためのシンプルかつ強力な方法です。初心者でも経験豊富な開発者でも、このテクニックを適用すると、ユーザーが誤って間違った日付を選択することがなくなります。この小さなステップが、アプリケーションの使いやすさに大きな違いをもたらす可能性があります。

以上がマスター日付入力コントロール: HTML フォームでの過去の日付の無効化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート