チェックボックスがチェックされている場合にのみ、テキストフィールドまたはドロップダウンが検証されるjquery検証を実行しようとしています。
ここに私が持っているものがあります:
@using (Ajax.BeginForm("SomeAction", "SomeController", new { id = Model.Id }, new AjaxOptions { HttpMethod = "Post", UpdateTargetId = "somePanel", InsertionMode = InsertionMode.Replace }, new { @id = "testForm" }))
{
@Html.DropDownListFor(x => Model.SelectedValue, Model.YesNoList, " ", new { @id ="drpYesNo" })
@Html.TextAreaFor(x => x.CriminalText, new { @id = "txtSomeField" })
<input type="submit" value="Save" />
}
JavaScriptにはこれがあります:
<script type="text/javascript">
jQuery.validator.messages.required = "";
$("#testForm").validate(
{
rules: {
txtSomeField: {
required: function (element) {
return $("input:checkbox[name='drpYesNo']:checked").val() == 'Yes';
}
}
}
});
$("#testForm").on("submit", function () {
if (!$(this).valid()) {
return false;
}
});
</script>
私はオンラインのいくつかの例に従っていますが、うまくいかないようです。どんな助けでも大歓迎です。独立記念日おめでとう!