vue.jsとvee-validateを使用して、after:を使用した日付検証と計算フィールドが機能していないようです

ブライアンマッケイ

以下のコーデックスには、日付を含む簡単な入力があります。

<input type="text" 
       v-model="startDate"  
       name="StartDate"
       v-validate="{ required: false, date_format: 'dd/MM/yyyy', before: maxStartDate }"/> 

入力した有効な日付に関係なく、エラーが生成されます。

StartDateは2019-08-01T03:59:59.999Zより前である必要があります。

私も試しました:

  • maxStartDateがJavaScriptの日付オブジェクト、ISOの日付(ここに表示)、および「1/1/2019」のような単純な日付を返すようにします。
  • 検証ルールのさまざまな組み合わせ。date_formatは不要、不要など。
  • 私はこれを何時間も続けています。明らかな何かが欠けているように感じ、すぐに自分を蹴ります。

また、vee-validateがメッセージングでUKスタイルのロケールを使用していることにも気づきました。たとえば、私は米国にいますが、日付は2019年7月25日のように戻ってきます。日付の比較がどういうわけか歪んでいるのだろうか。

コードペン:https://codepen.io/Kinetiq/pen/XLeEaM

ライリー

beforeバリデータは、あなたはそれがないと思うどのように動作しません。必要なのは、日付を含む別のフィールドへの参照です。startDateフィールドとendDateフィールドを作成している場合、startDateがendDateより前であることを確認する必要があると想像してください。それがこれが行うことです。

使用する必要のあるバリデーターはdate_between、次のようになります。

<input type="text" 
       v-model="startDate"
       name="StartDate"
       v-validate="{ date_format: 'dd/MM/yyyy', date_between:['01/01/1990',maxStartDate] }"/>  

そして、maxStartDateの定義方法を次のように変更する必要がありました。

            maxStartDate: function() {
                return moment()
                    .startOf('month')
                    .add(1, 'months')
                    .endOf('month').format('DD/MM/YYYY');
            }

実例:https//codepen.io/anon/pen/NZaLzg

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ