我的桌子上有复选框列表。如果选中复选框,则将值设置为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);
});
我的当前代码只有在选中后才会提交值。
答案 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)
虽然这不是您帖子的准确答案。这个问题以不同的形式出现过多次。到目前为止,下面链接中的方法似乎是一个不错的解决方案。