ASP.NET Core MVC
では、入力フォームの検証に標準でjQuery Validation
なるシロモノが使われているらしい。
詳しいことはドキュメントを。
バリデータが英語でメッセージを吐き出すから困る。
input type="date"
な要素の検証をしたかった。
Please enter a value less than or equal to XXXX-XX-XX.
Please enter a value greater than or equal to XXXX-XX-XX.
こんな感じでメッセージを変えられる。
$(() => {
$.extend($.validator.messages, {
max: $.validator.format("{0} 以前の値を指定する必要があります。"),
min: $.validator.format("{0} 以降の値を指定する必要があります。"),
})
})
でもこれだとinput
要素のtype
属性がnumber
だった時に困る。
こんな感じで関数を渡しちゃえば分岐も実現できるようで。
$(() => {
$.extend($.validator.messages, {
max(value, element) {
return element.type === "date"
? `${value} 以前の値を指定する必要があります。`
: `値は ${value} 以下にする必要があります。`;
},
min(value, element) {
return element.type === "date"
? `${value} 以降の値を指定する必要があります。`
: `値は ${value} 以上にする必要があります。`;
},
})
})