私は検証のためにデータ注釈を使用しています。また、クライアント側の検証にunobtrusive.jsを使用しています。 デフォルト設定のjquery.validate.js(ignore: ":hidden")のように、デフォルトでは検証されていないいくつかの非表示フィールドがあります(私は必要ありません)。 は、私の場合、私はちょうど、特定の隠しフィールドを検証すると、すべてではない、結果として私は をオーバーライドすることはできません無視:へ:「隠された」は無視:[]を。 これが変更された場合、私の必要条件ではないすべての隠しフィールドが検証の対象となります。Asp.net-MVCの特定の非表示フィールドに対するクライアント側の検証
特定の非表示フィールドの検証を有効にする方法がわかりません。
[ValidDate(ErrorMessage = "This is not a valid date.Please enter date in dd/mm/yyyy format.")]
public string HiddenSelectedDob { get; set; }
ValidDateは、カスタム属性です。
は、ここで私は、3つの異なるドロップダウンからとjQueryを使用して設定されます HiddenSelectedDobの値ダウン各ドロップの変更イベントのために日、月、年のために、ユーザからの入力を取っています。 最後に、この隠しファイルを提出して検証する必要があります。私はその隠された..
@Html.HiddenFor(m => m.HiddenSelectedDob, new { @class = "validateAlways" })
のように提出し
$.validator.setDefaults({ ignore: ":hidden:not(.validateAlways)" });
ようjqury.validate.jsのデフォルト設定を上書きが、結果は同じであるにクラス名を与えています。提出されたファイルは検証されていません。
パーツを構成するフィールドを正しく検証した場合、非表示のdobは常に有効ではありませんか? –
実際には、31/02/2016は有効な日付ではありませんが、31,02、および2016などの個々のフィールドは有効です。 – Anadi
ドロップダウンをロードする方法を強化する必要があります。ドロップダウンリストで無効なエントリを許可しないでください。これがドロップダウンのポイントです。 –