目立たない検証では、css クラスが検証要素に追加され、検証メッセージを表示するか非表示にするかが決定されます。次に例を示します。
<div class="editor-label">
<label>Start date</label>
<input class="text-box single-line" data-val="true" data-val-required="Must not be Empty" id="StartDate" name="StartDate" type="text" value="">
<span class="field-validation-valid" data-valmsg-for="StartDate" data-valmsg-replace="true"></span>
</div>
<div class="targetDiv">Your div shown only if StartDate is invalid</div>
これは、HTML がソースでどのように見えるかです。StartDate 入力に無効なデータを書き込むと、入力とスパン要素にクラスが追加されていることに注意してください。
<div class="editor-label">
<label>Start date</label>
<input class="text-box single-line input-validation-error" data-val="true" data-val-required="Must not be Empty" id="StartDate" name="StartDate" type="text" value="">
<span class="field-validation-error ui-state-error-icon ui-icon-alert" data-valmsg-for="StartDate" data-valmsg-replace="true"></span>
</div>
span 要素にfield-validation-errorクラスがあるかどうかを確認し、 targetDivを表示できます。目立たない検証がどのように機能するかを模倣し、動作サンプルを提供しました。
</p>
$(function(){
$('.targetDiv').hide(); //hide your div
$('#StartDate').change(function() { //capture change event for your input StartDate
$(this).addClass('input-validation-error'); //add unobtrusive css class for not valid
$(this).next().removeClass('field-validation-valid').addClass('field-validation-error ui-state-error-icon ui-icon-alert'); //add unobtrusive css class for not valid on span
if( $(this).next().hasClass('field-validation-error')) //check if span has a error class on it
{
$('.targetDiv').show(); //show your div
}
});
});
実際の例では、次を使用するだけです。
$('#StartDate').change(function() {
if( $(this).next().hasClass('field-validation-error'))
{
$('.targetDiv').show();
}
});
jsFiddle は次のとおりです: http://jsfiddle.net/mgrcic/Zj6zS/
よろしく。