W3C最新规定,当checkbox未选中,post不会将值提交到服务器,这就出现了一个变量未初始化的问题,看网上有很多朋友增加隐藏表单的方式解决,如果有多个checkbox的话,会增加很大的代码量。 **我找到一个简单的解决办法: 1、通过jquery将value为1的自动设置为checked选中状态 2、提交时执行getCheckBoxVal函数,遍历所有checkbox,将已经选中的,将值设置为1 3、将未选中的选项value设置0,把checkbox选项设置为checked,保持选中状态,保证提交到服务器。** **此方法同样适用于radio组件。** <script> $(document).ready(function() { $("#configform").find("input:checkbox[value='1']").prop('checked',true); }) function getCheckBoxVal(){ //提交前执行,将选中的checkbox的value设置为1,将未选中的checkbox也设置为checked,将值设置为0 $("#configform").find('input:checkbox').each(function() { //遍历所有复选框 if ($(this).prop('checked') == true) { $(this).val('1'); } else{ $(this).prop('checked',true); $(this).val('0'); } }); } </script> Loading... W3C最新规定,当checkbox未选中,post不会将值提交到服务器,这就出现了一个变量未初始化的问题,看网上有很多朋友增加隐藏表单的方式解决,如果有多个checkbox的话,会增加很大的代码量。 **我找到一个简单的解决办法: 1、通过jquery将value为1的自动设置为checked选中状态 2、提交时执行getCheckBoxVal函数,遍历所有checkbox,将已经选中的,将值设置为1 3、将未选中的选项value设置0,把checkbox选项设置为checked,保持选中状态,保证提交到服务器。** **此方法同样适用于radio组件。** <script> $(document).ready(function() { $("#configform").find("input:checkbox[value='1']").prop('checked',true); }) function getCheckBoxVal(){ //提交前执行,将选中的checkbox的value设置为1,将未选中的checkbox也设置为checked,将值设置为0 $("#configform").find('input:checkbox').each(function() { //遍历所有复选框 if ($(this).prop('checked') == true) { $(this).val('1'); } else{ $(this).prop('checked',true); $(this).val('0'); } }); } </script> 最后修改:2019 年 12 月 14 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 支持就是力量