我有一个类问题,其属性如下:
[Required]
public string Subject { get; set; }
[Required]
public string Content { get; set; }
我尝试做一些服务器验证。我已经包含了这些脚本:
<script src="@Links.Scripts.jquery_validate_min_js" type="text/javascript"></script>
<script src="@Links.Scripts.jquery_validate_unobtrusive_min_js" type="text/javascript"></script>
这是“创建”视图:
<dt><span>Question title*</span>please be specific but brief</dt>
<dd>@Html.TextBoxFor(m => m.Subject, new { @class = "boxsizingBorder" }) @Html.ValidationMessageFor(m=>m.Subject)</dd>
<dt><span>Question details</span></dt>
<dd>@Html.TextAreaFor(m => m.Content, 7, 30, new { @class = "boxsizingBorder" })@Html.ValidationMessageFor(m => m.Content)</dd>
当我尝试发布这样的新问题时:
$('#saveChanges').click(function () {
$('#createQuestion').submit();
});
(#saveChanges
是我的范围的ID,#createQuestion
是我的表单的ID)
如果我没有填写示例主题字段,我会立即看到错误消息(需要字段等),但无论如何都会发布问题。这是因为我试图使用jQuery发布表单还是什么?
在这种情况下,服务器验证应该如何工作?
答案 0 :(得分:1)
在提交执行验证之前,您需要实际调用Jquery validate。类似的东西:
$('#saveChanges').click(function (event) {
$("#yourForm").validate();
if ($("#yourForm").valid()) {
$('#createQuestion').submit();
}
event.preventDefault; //this is needed if your saveChanges button is a submit button
});