ajax请求前的c#mvc验证表单
在ajax请求之前,我尝试在页面/order/create上验证表单ajax请求前的c#mvc验证表单,c#,ajax,asp.net-mvc,validation,C#,Ajax,Asp.net Mvc,Validation,在ajax请求之前,我尝试在页面/order/create上验证表单 @model rentcar2.Models.mOrderSnapshot ... <form id="order"> @Html.EditorFor(model => model.Fam) <form> .... $('#test').click(function () { if ($("#order").valid()) { alert(1); } els
@model rentcar2.Models.mOrderSnapshot
...
<form id="order">
@Html.EditorFor(model => model.Fam)
<form>
....
$('#test').click(function () {
if ($("#order").valid()) {
alert(1);
} else { alert(2); }
alert(3);
});
@model rentcar2.Models.mOrderSnapshot
...
@EditorFor(model=>model.Fam)
....
$(“#测试”)。单击(函数(){
如果($(“#订单”).valid()){
警报(1);
}else{alert(2);}
警惕(3);
});
但是在警报1、3之后,我得到重定向到/order/create?fam=value(model.fam)
我只是想验证输入并显示无效,为什么要重定向?使用preventDefault停止按钮执行默认操作
$('#test').click(function (e) {
e.preventDefault();
if ($("#order").valid()) {
alert(1);
} else { alert(2); }
alert(3);
});
使用preventDefault停止按钮执行其默认操作
$('#test').click(function (e) {
e.preventDefault();
if ($("#order").valid()) {
alert(1);
} else { alert(2); }
alert(3);
});
我建议您使用非结构化的
jQuery.validate
plugin。这是进行表单客户端验证的最佳方法,它包含在默认的MVC.net应用程序中。这是一个例子:
@model rentcar2.Models.mOrderSnapshot
@Scripts.Render("~/bundles/jqueryval")
@using (Ajax.BeginForm()) {
@Html.ValidationSummary(true)
@Html.EditorFor(model => model.Fam)
@Html.ValidationMessageFor(model => model.Fam)
<input type="submit" value="Submit" />
}
有许多可用的dataannotation
,您也可以自己创建它们,请访问web
如果您想了解有关非结构化jQuery验证的更多信息,请访问:
编辑:您还可以使用以下方法手动触发验证过程:
$('#myForm').valid();
对于指定的元素:
$('#myForm').validate().element("#Fam");
来源:我建议您使用非结构化的jQuery。验证插件。这是进行表单客户端验证的最佳方法,它包含在默认的MVC.net应用程序中。这是一个例子:
@model rentcar2.Models.mOrderSnapshot
@Scripts.Render("~/bundles/jqueryval")
@using (Ajax.BeginForm()) {
@Html.ValidationSummary(true)
@Html.EditorFor(model => model.Fam)
@Html.ValidationMessageFor(model => model.Fam)
<input type="submit" value="Submit" />
}
有许多可用的dataannotation
,您也可以自己创建它们,请访问web
如果您想了解有关非结构化jQuery验证的更多信息,请访问:
编辑:您还可以使用以下方法手动触发验证过程:
$('#myForm').valid();
对于指定的元素:
$('#myForm').validate().element("#Fam");
来源:为什么不使用jQuery.validate
?默认值是否包含在MVC应用程序中?如何包含?我如何在需要时启动验证过程?您的元素是什么?id=“test”
-您没有取消其默认操作!如果您收到警报(1)
,那么这意味着它是有效的,那么为什么您希望“显示无效”(这是什么意思)?为什么不使用jQuery.validate
?默认值是否包含在MVC应用程序中?如何包含?我如何在需要时启动验证过程?您的元素是什么?id=“test”
-您没有取消其默认操作!如果您收到警报(1)
,则表示其有效,那么为什么您希望“显示无效”(您的意思是什么)?我如何在不提交的情况下启动验证过程?我更新了答案,但尝试提出一个更清楚的问题,说明您的真正需要您从未调用验证()
如果使用jquery.validate.unobtrusive.js
@StephenMuecke为什么?因为插件已经初始化了。如果您想测试表单是否有效,那么您可以使用If($('form').valid(){…
如何在不提交的情况下启动验证过程?我更新了答案,但尝试提出一个更清楚的问题,说明您真正的需要您从未调用validate()
如果使用jquery.validate.unobtrusive.js
@StephenMuecke为什么?因为插件已经初始化了它。如果要测试表单是否有效,则使用if($('form').valid()){…