Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Validation 表单提交(尽管LINQtoSQL已验证)_Validation_Linq To Sql - Fatal编程技术网

Validation 表单提交(尽管LINQtoSQL已验证)

Validation 表单提交(尽管LINQtoSQL已验证),validation,linq-to-sql,Validation,Linq To Sql,我正在使用Linq到SQL数据注释验证。如果某些字段无效,我会收到验证消息。但是,如果我点击save,表单仍然提交(带有无效值) 视图: @节脚本{ @Scripts.Render(“~/bundles/jqueryval”) } @使用(Html.BeginForm()){ .... .... $(“#btnSave”)。在(“单击”,保存记录); 函数saveRecord(){ //document.forms[0]。提交(); $.ajax( {type:'Post', url:'@ur

我正在使用Linq到SQL数据注释验证。如果某些字段无效,我会收到验证消息。但是,如果我点击save,表单仍然提交(带有无效值)

视图:


@节脚本{
@Scripts.Render(“~/bundles/jqueryval”)
}
@使用(Html.BeginForm()){
....
....
$(“#btnSave”)。在(“单击”,保存记录);
函数saveRecord(){
//document.forms[0]。提交();
$.ajax(
{type:'Post',
url:'@url.Action(“保存”、“订单”),
数据:{
OrderID:“@Model.OrderID”,
ShipName:$('.Name输入').val(),
ShipAddress:“@Model.ShipAddress”,
RequiredDate:“@Model.RequiredDate”,
ShipPostalCode:“@Model.ShipPostalCode”
},
数据类型:“html”,
成功:功能(数据){
//警报(“已保存”);
}
})
返回false;
}

实际上,您并不是在“提交”表单,您只是在对表单内容进行ajax发布,因此任何连接到表单“提交”事件的验证逻辑都不会触发

除非表单有效,否则您可能需要添加一个保护以防止ajax帖子发生,例如:

var myForm = $('form');
myForm.validate();
if(myForm.valid()) { //Assuming that valid() is the method provided by your client side validation library.
    $.ajax(...)
}
当服务器接收到数据时(在将数据插入数据库之前),您还应该再次验证数据,以防止人们故意绕过您网页上的验证


另外,这个问题可能不应该用linq to sql标记,因为它似乎纯粹是jQuery验证和ASP.NET MVC数据注释的问题。

试试
$(document.forms[0]).valid()
(我假设您使用的是jQuery验证库)事实上,这是我第一次尝试的。现在我尝试了你答案中的一个。错误:object[object object]没有有效的方法。啊,显然在调用
validate()
之前需要调用
validate()
。我已经根据答案进行了更新以反映这一点。错误:object[object object]没有有效的方法。1.如果
$().validate
$()。如果未定义valid
,则验证库不会加载到页面上。2.
$('form')
返回什么对象?
var myForm = $('form');
myForm.validate();
if(myForm.valid()) { //Assuming that valid() is the method provided by your client side validation library.
    $.ajax(...)
}