2

我有一个类问题,其属性如下:

[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是我的跨度#createQuestion的ID,是我的表格的ID)

如果我不填写示例主题字段,我会暂时看到一条错误消息(必填字段等),但无论如何都会发布问题。这是因为我试图使用 jQuery 或什么来发布表单吗?

在这种情况下,服务器验证应该如何工作?

4

1 回答 1

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
});
于 2012-04-17T21:30:17.807 回答