当我通过 jquery 发布时,服务器验证不起作用

本文关键字:服务器 验证 不起作用 布时 jquery | 更新日期: 2023-09-27 18:31:17

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

[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 发布表单还是什么?

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

当我通过 jquery 发布时,服务器验证不起作用

在提交以执行验证之前,您需要实际调用 Jquery 验证。像这样:

$('#saveChanges').click(function (event) {
   $("#yourForm").validate();
   if ($("#yourForm").valid()) {
       $('#createQuestion').submit();
   }
   event.preventDefault; //this is needed if your saveChanges button is a submit button
});