Jquery handsontable验证部分不工作,它正在迭代26次,其中相同的代码在另一个页面中工作
我不明白汤姆,我的密码在哪里?我已经实现了handsontable,除了验证之外,一切都很好,在验证过程中,它会重复多次。但我坚持了25次Jquery handsontable验证部分不工作,它正在迭代26次,其中相同的代码在另一个页面中工作,jquery,model-view-controller,handsontable,Jquery,Model View Controller,Handsontable,我不明白汤姆,我的密码在哪里?我已经实现了handsontable,除了验证之外,一切都很好,在验证过程中,它会重复多次。但我坚持了25次 enter code here $(document).ready(function () { $('#btnValidateSave').on('click',function () { debugger; $('#HSTable').handsontable('validateCells', function (isPas
enter code here
$(document).ready(function () {
$('#btnValidateSave').on('click',function () {
debugger;
$('#HSTable').handsontable('validateCells', function (isPass) {
if (isPass) {
SaveData();
alert("Saving data");
}
else {
alert("Please enter the data in correctformat");
}
});
//$('#HSTable').handsontable('render');
});
$('#btnUpload').click(function () {
upload();
})
});
function upload()
{
var formData = new FormData();
var totalFiles = document.getElementById("UploadFile").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("UploadFile").files[i];
formData.append("Document", file);
}
$.ajax({
url: "/BulkUpload/UploadFile",
type: "POST",
dataType: "JSON",
data: formData,
contentType: false,
processData: false,
success: function (result) {
if (result != null) {
DataBind(result);
}
else
{
}
}
});
}
function DataBind(result) {
$("#HSTable").handsontable({
data: result,
startRows: 100,
rowHeaders: true,
colHeaders: ["Agent","Invoice No", "Issue Date", "Passanger",
"Empno", "ProjectCode", "RequestNo", "RequireDate",
"AirlineName", "AirLineCode", "Ticket", "Locator", "FlightNO", "DetpDate",
"ReturnDate", "ServiceClass", "ServiceType", "TravelType", "TripType", "Sector",
"OrgnDtn", "Region", "BaseFare", "TotalTax", "ServiceFare", "TotalFare", "Remarks"],
columns: [
{data: 'Agent'},
{ data:'InvoiceNo' },
{ data: 'IssueDate' },
{
data: 'Passenger',
},
{
data: 'EmpNo',
},
{
data: 'ProjectCode',
},
{
data: 'RequestNo',
},
{ data:'RequireDate'},
{data:'AirLineName'},
{ data: 'AirLinecode' },
{ data: 'TicketNo' },
{ data: 'Locator' },
{ data: 'FlightNo' },
{ date: 'DepDate' },
{ date: 'ReturnDate' },
{ data: 'ServiceClass' },
{ data: 'ServiceType' },
{ data: 'TravelType' },
{ data: 'tripType' },
{ data: 'Sector'},
{ data: 'OrgDtn' },
{ data: 'Region' },
{ data: 'BaseFare' },
{ data: 'TotalTax' },
{ data: 'ServiceFee' },
{ data: 'TotalFare' },
{ data: 'Remarks' }
],
colWidths: 85,
});
}
var notEmpty=function(value, callback) {
if (!value || String(value).length === 0) {
callback(false);
}
else {
callback(true);
}
大家好,我不明白汤姆,我的密码在哪里?我已经实现了handsontable,除了验证之外,一切都很好,在验证过程中,它会重复多次。但我坚持了25次
enter code here
$(document).ready(function () {
$('#btnValidateSave').on('click',function () {
debugger;
$('#HSTable').handsontable('validateCells', function (isPass) {
if (isPass) {
SaveData();
alert("Saving data");
}
else {
alert("Please enter the data in correctformat");
}
});
//$('#HSTable').handsontable('render');
});
$('#btnUpload').click(function () {
upload();
})
});
function upload()
{
var formData = new FormData();
var totalFiles = document.getElementById("UploadFile").files.length;
for (var i = 0; i < totalFiles; i++) {
var file = document.getElementById("UploadFile").files[i];
formData.append("Document", file);
}
$.ajax({
url: "/BulkUpload/UploadFile",
type: "POST",
dataType: "JSON",
data: formData,
contentType: false,
processData: false,
success: function (result) {
if (result != null) {
DataBind(result);
}
else
{
}
}
});
}
function DataBind(result) {
$("#HSTable").handsontable({
data: result,
startRows: 100,
rowHeaders: true,
colHeaders: ["Agent","Invoice No", "Issue Date", "Passanger",
"Empno", "ProjectCode", "RequestNo", "RequireDate",
"AirlineName", "AirLineCode", "Ticket", "Locator", "FlightNO", "DetpDate",
"ReturnDate", "ServiceClass", "ServiceType", "TravelType", "TripType", "Sector",
"OrgnDtn", "Region", "BaseFare", "TotalTax", "ServiceFare", "TotalFare", "Remarks"],
columns: [
{data: 'Agent'},
{ data:'InvoiceNo' },
{ data: 'IssueDate' },
{
data: 'Passenger',
},
{
data: 'EmpNo',
},
{
data: 'ProjectCode',
},
{
data: 'RequestNo',
},
{ data:'RequireDate'},
{data:'AirLineName'},
{ data: 'AirLinecode' },
{ data: 'TicketNo' },
{ data: 'Locator' },
{ data: 'FlightNo' },
{ date: 'DepDate' },
{ date: 'ReturnDate' },
{ data: 'ServiceClass' },
{ data: 'ServiceType' },
{ data: 'TravelType' },
{ data: 'tripType' },
{ data: 'Sector'},
{ data: 'OrgDtn' },
{ data: 'Region' },
{ data: 'BaseFare' },
{ data: 'TotalTax' },
{ data: 'ServiceFee' },
{ data: 'TotalFare' },
{ data: 'Remarks' }
],
colWidths: 85,
});
}
var notEmpty=function(value, callback) {
if (!value || String(value).length === 0) {
callback(false);
}
else {
callback(true);
}
在此处输入代码
$(文档).ready(函数(){
$('btnValidateSave')。在('click',函数(){
调试器;
$(“#HSTable”).handsontable('validateCells',函数(isPass){
如果(isPass){
SaveData();
警报(“保存数据”);
}
否则{
警报(“请以正确格式输入数据”);
}
});
//$(“#HSTable”).handsontable('render');
});
$('#btnUpload')。单击(函数(){
上传();
})
});
函数上传()
{
var formData=new formData();
var totalFiles=document.getElementById(“UploadFile”).files.length;
对于(var i=0;i
})
var EmailValidator=函数(值,回调){
如果(+/.+@.+/.测试(值)){
回调(true);
}
否则{
回调(假);
}
};
函数SaveData(){
变量数据=[{}];
var$container=document.getElementById('#HSTable');
var colHeaderList=$(“#HSTable”).handsontable(“getColHeader”);
var rowHeaderList=$(“#HSTable”).handsontable(“getRowHeader”);
var tableData=$(“#HSTable”).handsontable(“getData”);
var obj=$('#HSTable').handsontable(“getData”);
var ObjBulk=[];
调试器;
//对于(变量i=0;i 对于(var i=0;i将emailValidator函数应用于包含电子邮件ID的列
例如:
columns: [
{data: 'id', type: 'numeric'},
{data: 'name.first'},
{data: 'name.last'},
{data: 'ip', validator: ipValidatorRegexp, allowInvalid: true},
{data: 'email', validator: emailValidator, allowInvalid: false}
]
您可以参考我没有使用邮件验证程序字段,我在四列中使用NotEmpty验证程序。在按钮单击事件中,我调用了验证函数,它正在工作,但它正在迭代26次,假设我打开了警报窗口n以验证true,26次警报窗口即将到来。好的!您已经在整个系统上应用了验证handsontable,因此它会遍历每个单元格。您只需要对该特定列应用验证。使用afterValidate回调,它将在验证后每行调用一次。validateCells(回调):使用其验证器函数验证所有单元格,并在完成时调用回调。不呈现视图。如果其中一个单元格无效,则将使用“valid”参数启动回调,并将其设置为false-否则将等于true。请尝试一些技巧,如:在handsontable JS文件中,转到其他{//即使找不到验证程序函数也解析回调(可能是第1093行)。删除:cellProperties.valid=true;完成(cellProperties.valid);并添加:实例。_registerTimeout(setTimeout(function(){cellProperties.valid=true;完成(cellProperties.valid);},0);