如何提交表单中的所有复选框字段

How to submit all checkbox fields in the form?

本文关键字:复选框 字段 表单 何提交 提交      更新时间:2023-12-13

我有一张带有复选框列表的表。若复选框处于选中状态,则值设置为0,若未选中,则值为-1。我当前的代码只有在选中复选框时才提交复选框。我想在每次点击保存按钮时提交表单中的所有复选框。有什么办法我能做到吗?这是我的代码:

HTML:

<input type="checkbox" name="user" value="~(user_ID)" class="chkBlock" />

JQuery:

//This code switch value based on if check box is checked or not
$j('.chkBlock').click(function(){
     $j(this).val(this.checked ? 0:-1);
});

该代码设置复选框状态基于DB:中的值

$j( document ).ready(function() {
    $j('input.chkBlock[value="0"]').prop("checked", true);
    $j('input.chkBlock[value="-1"]').prop("checked", false);
    $j('input.chkBlock[value=""]').prop("checked", false);
});

我当前的代码只有在选中时才提交值。

var boxes=new Array();
$(".chkBlock").each(
function()
{
  if( $(this).prop("checked") )
  {
      boxes.push( $(this).prop("name")+"[]="+$(this).val() );
  }
  else
  {
      boxes.push( $(this).prop("name")+"[]=0" );
  }
});
console.log( boxes.join("&") );

我在没有测试的情况下写了上面的内容——我上床睡觉了,但我想我会给你一些思考的食物。

我相信我上面写的代码会循环通过chkBlock类的所有标记,如果检查的属性为true,那么它会附加框的名称、双方括号、等号和框的值。

如果checked不为true,则检查仍然通过,但给定的值为零。

已编辑:[]表示复选框将作为数组发送到服务器。检查控制台日志中的示例数据。

我希望这对你有所帮助。。。或者至少,我希望它不会混淆。

虽然这不是你帖子的确切答案。这个问题以不同的形式多次出现。到目前为止,下面链接中的方法似乎是一个不错的解决方案。

张贴未选中的复选框