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

时间:2016-04-04 19:53:31

标签: javascript jquery html forms checkbox

我的桌子上有复选框列表。如果选中复选框,则将值设置为0,如果未选中,则值为-1。我的当前代码只有在选中后才会提交复选框。每次点击“保存”按钮,我都要在表单中提交所有复选框。有什么方法可以做到吗?这是我的代码:

HTML:

$delta

JQuery的:

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

并且此代码设置基于来自DB的值的复选框状态:

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

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

2 个答案:

答案 0 :(得分:1)

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,则它将附加框的名称,双方括号,等号和框的值

如果选中该选项不为true,则仍会传递检查但值为零。

EDITED:[]表示复选框作为数组发送到服务器。检查控制台日志中的样本数据。

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

答案 1 :(得分:0)

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

Post the checkboxes that are unchecked