当我通过 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 验证。像这样:
$('#saveChanges').click(function (event) {
$("#yourForm").validate();
if ($("#yourForm").valid()) {
$('#createQuestion').submit();
}
event.preventDefault; //this is needed if your saveChanges button is a submit button
});