Red*_*one 0 validation jquery asp.net-mvc-3
我正在使用asp.net mvc3和我的项目以及jquery ajax方法.我已经能够验证输入,但如果我点击发布按钮,即使表单包含无效数据,也会发布数据.我知道这可以使用提交按钮解决.但我想使用我的jquery方法.我一直在使用asp.net mvc3客户端验证.这是我从表单发布数据的代码.
//jQuery
function PostForm(Url, FormID, Title) {
var dataTOPost = '#' + FormID; // Id of particular form to post
$.ajax({
url: Url,
type: 'POST',
data: $(dataTOPost).serialize(),
beforeSend: function () {
//display some loading pics
}
}).done(function (result) {
//if success do something
});
}
Run Code Online (Sandbox Code Playgroud)
我用它如下
<a onclick="PostForm('someurl','myform', 'Title of dialog');" >Submit</a>
Run Code Online (Sandbox Code Playgroud)
以下是正在验证的表单部分的屏幕截图.即使表单包含无效数据,表单也会发布.我该如何解决这个问题.谢谢.

您必须解析表单以使用以下方法进行验证:
$.validator.unobtrusive.parse($(form));
Run Code Online (Sandbox Code Playgroud)
然后询问是否有效:
$(form).valid();
Run Code Online (Sandbox Code Playgroud)
例如:
function PostForm(Url, FormID, Title) {
var dataTOPost = '#' + FormID; // Id of particular form to post
$.validator.unobtrusive.parse($(dataTOPost));
if ($(dataTOPost).valid()){
$.ajax({
url: Url,
type: 'POST',
data: $(dataTOPost).serialize(),
beforeSend: function () {
//display some loading pics
},
done: function (result) {
//if success do something
}});
}else{
console.log("invalid form");
}
}
Run Code Online (Sandbox Code Playgroud)