我使用mvc 2,我的观点如下
<% using (Html.BeginForm("ApplyLeave", "ESS", FormMethod.Post, new { id = "formApplyLeave" }))
{ %>
<fieldset>
<div>
<div>
<label for="FromDate">
From</label></div>
<div>
<%=Html.TextBoxFor(l => l.FromDate, new { id = "FromDate", name = "FromDate", maxlength = 10 })%>
</div>
<div>
<%=Html.ValidationMessageFor(l => l.FromDate)%></div>
</div>
<div>
<div>
<label for="ToDate">
To</label></div>
<div>
<%=Html.TextBoxFor(l => l.ToDate, new { id = "ToDate", name = "ToDate", maxlength = 10 })%>
</div>
<div>
<%=Html.ValidationMessageFor(l => l.ToDate)%></div>
</div>
</fieldset>
<% } %>
并且用于提交表单,我使用jquery作为
$('#formApplyLeave').submit();
我在模型中的属性中写了验证。
在这里我可以提交表格,但验证不会被解雇。在提交表单之前,如何在jquery中触发验证。
请帮忙。
答案 0 :(得分:1)
var form = $('#formApplyLeave');
var context = Sys.Mvc.FormContext.getValidationForForm(form.get(0));
if (context.validate().length < 1) {
// The form passed client side validation => you may submit it
form.submit();
}
答案 1 :(得分:0)
您可以使用beforeSubmit回调设置值:
或使用jQuery验证插件的验证方法
试试这个〜
$(document).ready(function() {
$("#form1").submit(function() {
$("#txt1").val("123");
$("#form1").validate({
rules: {
txt1: {
maxlength: 3
}
}
});
});
});
这种方式验证将由您的提交事件处理程序触发。
答案 2 :(得分:0)
ScottGu有一篇很好的文章描述了你的需求:
http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
你错过了一个电话和一些MS JS。