3つのセレクターからのRemoteValidation/jQueryを使用して生年月日を検証したいと思います。ユーザーが18歳以上かどうかを確認したい。しかし、ATMはそれらをグループ化するのに問題があるため、それらは無効/有効であり、エラーメッセージは1つだけです。
目標:3つの要素のいずれかを変更したときに、同じRemoteValidationを使用して3つの要素すべてをグループ(jqueryバリデーターグループ)として検証したいと思います。
誰かがこれを解決する方法を知っていますか?
意見:
@Html.DropDownListFor(m => m.BirthYear, Model.BirthYearList)
@Html.DropDownListFor(m => m.BirthMonth, Model.BirthMonthList)
@Html.DropDownListFor(m => m.BirthDay, Model.BirthDayList)
モデル
[Remote("IsValidCustomerBirthDate", "JsonValidation", AdditionalFields = "BirthDay, BirthMonth", ErrorMessageResourceName = "InvalidCustomerBirthDate", ErrorMessageResourceType = typeof(Error))]
[Required]
public int BirthYear { get; set; }
[Remote("IsValidCustomerBirthDate", "JsonValidation", AdditionalFields = "BirthYear, BirthDay", ErrorMessageResourceName = "InvalidCustomerBirthDate", ErrorMessageResourceType = typeof(Error))]
[Required]
public int BirthMonth { get; set; }
[Remote("IsValidCustomerBirthDate", "JsonValidation", AdditionalFields = "BirthYear, BirthMonth", ErrorMessageResourceName = "InvalidCustomerBirthDate", ErrorMessageResourceType = typeof(Error))]
[Required]
public int BirthDay { get; set; }
RemoteValidation関数
[HttpGet]
public JsonResult IsValidCustomerBirthDate(int birthYear, int birthMonth, int birthDay)
{
try
{
var dateOfBirth = new DateTime(birthYear, birthMonth, birthDay);
var ageCalculator = new AgeCalculator();
if (ageCalculator.GetAge(dateOfBirth) >= AgeLimit)
{
return Json(true, JsonRequestBehavior.AllowGet);
}
}
catch (ArgumentException)
{
}
return Json(false, JsonRequestBehavior.AllowGet);
}
私はvalidate()のグループで苦労していますが、どこにも行きません。
あらゆる種類の入力に感謝します。(私はフロントエンド開発者なので、複雑なC#コードの場合はもっと参考にしてください)。
よろしく/マグナス