验证数据 jQuery Handsontable 输入
Validate Data jQuery Handsontable input
Q1:在发送到服务器之前验证用户在jQuery Handsontable中输入的数据的最佳方法是什么?
我读过这篇文章上传 jQuery Handsontable 输入
有没有集成解决方案?等集成到jQuery验证插件中,如果没有,使用onbeforechange()方法怎么样?
Q2:更重要的是,我已经启动了一个 100 行表,但如果我使用以下代码,用户可能只会输入 50 行:
$('#btnGo').click(function() {
var rowList = $("#example9grid").handsontable("getData");
$('#simple').val(JSON.stringify(rowList));
console.log(rowList);
});
rowList 将返回 50 个数据行和 50 个空行。
如何删除所有空行?
A1:感谢您的回复,我使用以下代码解决了这个问题:
onBeforeChange: function (data) {
for (var i = 0, ilen = data.length; i < ilen; i++) {
if (data[i][0] > 0) { //if it is not first row
if(data[i][1]==0){ //if it is the first column
//some validate logic here
}else if(data[i][1]==1){//if it is the second column
//some validate logic here
}
}
}
};
A2:I使用以下代码删除空行:
rowList = $("#dataTable").handsontable("getData");
rowList = $.grep(rowList,function(array,index){
...write your logic here
});
试图抓住问题。如果您只是尝试在使用"getData"并将其发送到服务器之前删除空行,那么......只需遍历 DOM 并删除任何空行。
$('#btnGo').click(function() {
$('rowSelector:empty').each(function(){
$(this).remove();
});
var rowList = $("#example9grid").handsontable("getData");
$('#simple').val(JSON.stringify(rowList));
console.log(rowList);
});
A1:在我看来,我会向数据服务器端发送一个$.ajax
请求,并在那里进行验证。
// your handsontable callback
// i would use this callback
onChange : function(data){
$.ajax({
url : '/validate/',
data : data,
dataType : 'json',
success : function(res){
if(res.error){
handleErrors(res.error);
}else{
successMsg(res);
}
}
})
}
这样你就有办法在服务器端建一堵墙,以防有人试图手动添加自己的数据,并且你不会重写你的验证系统。
还有一件事要注意,最好发回json数据,例如在php中,它是这样的。
<?php
// do validating here
// store if everything is good
// send back error if thing are not
header('Cache-Control: no-cache, must-revalidate');
header('Content-type: application/json');
echo json_encode($callbackobj);
?>
这样,结果就已经是JavaScript读取的完美形式了
。A2:我会把它们留在那里,为新数据留出空间。 如果你看像Excel这样的程序,或者数字,他们只是把表格留在那里。如果您的查看是只读的,我只会使用您存储的数据重建数据。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 使用jquery在单击时在单元格中输入值
- Ajax文件加载和<输入>文件加载
- 验证数据 jQuery Handsontable 输入
- 上传 jQuery Handsontable 输入
- Handsontable标题搜索,输入文本,在滚动时间歇性清除