点击box1更改box2

时间:2017-01-16 20:02:09

标签: javascript php jquery checkbox

我需要你的帮助,我正在寻找以下解决方案: 有一个表单有几个复选框,但只有4个是重要的。这里是来自这个4的html代码:

<input name="opt[pool]" id="opt_pool" type="checkbox" class="searchval" value="1" onclick="submit_search()">Pool
<input name="opt[ppool]" id="opt_ppool" type="checkbox" class="searchval" value="1" onclick="submit_search()">PPool

<input name="opt[internet]" id="opt_internet" type="checkbox" class="searchval" value="1" onclick="submit_search()">Internet
<input name="opt[internetw]" id="opt_internetw" type="checkbox" class="searchval" value="1" onclick="submit_search()">InternetW

这是jQuery代码:

function build_search(skip){
    var sparam = ''; 
    var fields = {};
    $('.searchval').each(function(index){          
        if($(this).attr('name')==skip) {}
        else if($(this).attr('type')=='checkbox'||$(this).attr('type')=='radio'){
            if($(this).prop("checked")){
                sparam+=$(this).attr('name')+"="+$(this).attr('value')+"&";
                fields[$(this).attr('name')] = $(this).attr('value');
            }
        }
        else if($(this).val()!=undefined&&$(this).val()!=''){
            sparam+=$(this).attr('name')+"="+$(this).val()+"&";
            fields[$(this).attr('name')] = $(this).val();
        }
    });
}

现在我想介入 - 当点击池时,这用val = 1检查,ppool未检查,val = 0。单击ppool htis时反转,使用val = 1检查,并且使用val = 0取消选中池。 这适用于我的代码:

var boxesP = $('#opt_pool,#opt_ppool').click(function(){
    boxesP.not(this).prop('checked', false);
    $("#opt_pool").val( $("#opt_pool")[0].checked ? "0" : "1" );
    $("#opt_ppool").val( $("#opt_ppool")[0].checked ? "0" : "1" );
});

但问题是,当我点击其他复选框时,检查池的值为val = 1,仍然会被检查但是val = 0。 我的错误在哪里?感谢。

1 个答案:

答案 0 :(得分:0)

我注意到你有一个onClick功能。这样的事情对你有用吗?

<input name="opt[pool]" id="opt_pool" type="checkbox" class="searchval" value="0" onclick="submit_search(this)">Pool
<input name="opt[ppool]" id="opt_ppool" type="checkbox" class="searchval" value="0" onclick="submit_search(this)">PPool
submit_search = function(e){
        if($(e).attr('checked') == 'checked'){
            $('.searchval').attr('checked',null);
            $('.searchval').val(0);
            $(e).attr('checked','checked');
            $(e).val(1);
        }else{
            $(e).val(0);
        }
    }