javascript - JQuery 验证清空 JS 对象
问题描述
我正在使用 jQuery Validation 来验证 ASP.NET MVC 应用程序中的表单。我正在使用 Ajax 提交表单,该表单有几个基本字段,但还构建了一个需要提交给控制器的 js 对象。
我遇到的问题是当我在 jQuery 验证上使用提交处理程序时,它会清除我构建的 JS 对象。
我在验证之前检查了对象,它是准确的。然后我使用 ajax 方法上的 before send 检查了对象,它已经清空了。
$('#FATTemplateForm').validate({
errorPlacement: function (error, element) {
//check whether chosen plugin is initialized for the element
if (element.attr("name") == "PORRadio") {
error.insertAfter("#POROption");
}
else if (element.attr("name") == "UPN")
{
error.insertAfter("#UPN-Chosen");
}
else if (element.attr("name") == "ComponentTypeInput")
{
error.insertAfter("#componetType-Chosen");
}
else if (element.attr("name") == "ComponentAttributeTypeInput")
{
error.insertAfter("#FATAttributes-Chosen");
}
else {
error.insertAfter(element);
}
},
showErrors: function (errorMap, errorList) {
var errors = this.numberOfInvalids(); // <- NUMBER OF INVALIDS
var summary = "You have " + errors + " validation errors. Please fix errors and try submitting again.";
$('#ErrorMsg').empty().append(summary);
$('.alert-danger').show()
this.defaultShowErrors(); // <- ENABLE default MESSAGES
},
invalidHandler: function (form, validator) {
},
rules: {
//Select System/Component
ParentChildInput: {
required: true,
},
ComponentTypeInput: {
required: {
depends: function (element) {
if ($('#formParentChild').val() == "Component") {
return true;
} else {
return false;
}
}
}
},
OtherComponentTypeNameInput: {
required: {
depends: function (element) {
if ($('#formComponentType').val() == "Other") {
return true;
} else {
return false;
}
}
}
},
ComponentAttributeTypeInput: {
required: {
depends: function (element) {
if ($('#formComponentType').val() == "Other") {
return true;
} else {
return false;
}
}
}
},
Project: {
required: true,
},
UPN: {
required: true,
},
Disciplines: {
required: true,
},
DrawingRefernceNameInput: {
required: false,
},
PORRadio: {
required: true,
},
PORNumNameInput: {
required: {
depends: function (element) {
if ($("input:radio[name='PORRadio']:checked").val()=="1") {
return true;
} else {
return false;
}
}
}
},
PORRevNameInput: {
required: {
depends: function (element) {
if ($("input:radio[name='PORRadio']:checked").val() == "1") {
return true;
} else {
return false;
}
}
},
digits: true,
},
PORDateNameInput: {
required: {
depends: function (element) {
if ($("input:radio[name='PORRadio']:checked").val() == "1") {
return true;
} else {
return false;
}
}
}
},
DrawingRefernceNameInput: {
regx: /^[ A-Za-z0-9_@./%^()!#&"'+-]*$/,
}
//OtherComponentTypeNameInput:
//{
// required: true
//},
//ComponentAttributeTypeInput:
//{
// required: true
//},
},
messages: {},
errorElement: 'div',
errorLabelContainer: '.errorTxt',
submitHandler: function (form) {
$.ajax({
type: "POST",
beforeSend: console(FAT),
url: "/FATs/CreateFAT_Template",
data: JSON.stringify(FAT),
contentType: 'application/json; charset=utf-8',
headers: headers,
dataType: "json",
success: successFunc,
error: errorFunc
});
//Success Result
function successFunc(data, status) {
//Redirect User after successful submittion of FAT
window.location.href = "/FATs/CreateFATFromTemplateIndex";
}
//Error Result
function errorFunc() {
alert('Error! Please ensure you a connected to the internet and try again.');
}
},
});
为什么在使用验证时对象被清空?
解决方案
推荐阅读
- php - 使用 PHP 修改 WordPress 中的类别模板
- angular - Angular 6 lib 提供程序错误
- bootstrap-4 - 如何限制 Bootstrap datetimepicker 未来的日期?
- machine-learning - 使用 Fortran 导入 MNIST 数据集
- typo3 - TYPO3 - 翻译不显示,总是默认语言
- javascript - jquery加载函数不调用spring boot控制器来替换thymeleaf模板片段
- angular - 如何像我们在angular js中但在angular 5中一样包含html文件?
- javascript - 如何检查所有输入是否已正确填写,然后将其更改为绿色
- javascript - FullCalendar 尝试从 URL 而不是数组中获取事件
- javascript - Vuejs - 使用模板将父组件道具传递给子元素