gpt4 book ai didi

javascript - 输入复选框+DataTables+Jquery有时返回 "on"而不是输入值

转载 作者:行者123 更新时间:2023-12-03 05:07:40 25 4
gpt4 key购买 nike

我在生产环境中遇到错误,并且无法在开发环境中重现它,所以我认为这是浏览器的问题。

我有一个DataTable由服务器端处理和作为复选框的自定义列填充,这是简化的代码:

$("#data-table").DataTable({        
"serverSide" : true,
"ajax" : {
"url" : "/list",
"dataSrc" : "data"
},
"columns" : [{
"data" : function(row) {
return '<input class="id-checkbox" type="checkbox" name="ids[]" value="' + row.id + '">';
},
"class" : "text-center",
"orderable" : false
},{
"data" : "name",
"class" : "text-center",
"orderable" : false
}]
});

然后我有一些 jQuery 代码,每当单击按钮时,然后获取所选项目并将其发布到后端服务器:

$("#button").on("click", function(){

var ids = [];

$('input[type=checkbox]:checked').each(function() {
ids.push(this.value);
});

if (ids.length == 0) {
//POST Ajax request to server
}
});

问题是有时 ids数组中充满了一些 id 和一些“on”字,所以我的后端在等待 Long 数组时爆炸了。 。这是一个堆栈跟踪示例:

Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long[]'; 
nested exception is java.lang.NumberFormatException:
For input string: "109287,109286,109273,108820,on,on"

有人知道发生了什么事吗?

最佳答案

“on”将是没有 value 属性的复选框的值:

<input id="i" type="checkbox">

如果您记录此输入的值,至少在 Firefox 中您将获得 "on":

console.log(document.getElementById('i').value);

检查您的脚本生成了什么 HTML。也许,某些复选框缺少值属性。也许,因为作为一个想法,有时不存在 row.id

关于javascript - 输入复选框+DataTables+Jquery有时返回 "on"而不是输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41958876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com