Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果选中复选框,则只允许选中下一个复选框_Javascript_Jquery_Checkbox - Fatal编程技术网

Javascript 如果选中复选框,则只允许选中下一个复选框

Javascript 如果选中复选框,则只允许选中下一个复选框,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我用php函数做了一个表 <table width='400' border='0' cellpadding='2' cellspacing='0' id='booking'> <tr> <th width='150' align='left'>Start</th> <th width='150' align='left'>End</th> <th width='150' align='left

我用php函数做了一个表

<table width='400' border='0' cellpadding='2' cellspacing='0' id='booking'>
<tr>
    <th width='150' align='left'>Start</th>
    <th width='150' align='left'>End</th>
    <th width='150' align='left'></th>
    <th width='20' align='left'>reserv</th>         
</tr>
<tr>
    <td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>
</tr>
但是我没有让它工作。。我也试过使用“.next”。。。 有人能帮忙吗?

使用此代码

$(“.fields”).change(函数(){
var index=$(this.index()+1;
$(“.fields”).attr(“已禁用”,true);
$(“.fields:lt(“+index+”).attr(“禁用”,false);
});

使用此代码

$(“.fields”).change(函数(){
var index=$(this.index()+1;
$(“.fields”).attr(“已禁用”,true);
$(“.fields:lt(“+index+”).attr(“禁用”,false);
});

答案似乎不正确。 您可以选中一些复选框,然后从未选中的复选框中删除复选框,以查看问题所在


在这里,但当您取消选中一个复选框时,之后的所有复选框都将被取消标记

如果您想取消选中剩余的部分,那么使用注释部分

var字段=$(“.fields”);
fields.change(函数(){
Array.prototype.reduce.call(字段、函数(prev、curr){
curr.disabled=!prev.checked | | prev.disabled;
/*
如果要取消选中“重新定义”,请使用此选项,而不是上面的行:
当前选中=当前选中?当前选中:false;
当前已禁用=!上一个已选中;
*/
返回货币;
});
});
字段。更改()

复选框
复选框
复选框
复选框
复选框
答案似乎不正确。 您可以选中一些复选框,然后从未选中的复选框中删除复选框,以查看问题所在


在这里,但当您取消选中一个复选框时,之后的所有复选框都将被取消标记

如果您想取消选中剩余的部分,那么使用注释部分

var字段=$(“.fields”);
fields.change(函数(){
Array.prototype.reduce.call(字段、函数(prev、curr){
curr.disabled=!prev.checked | | prev.disabled;
/*
如果要取消选中“重新定义”,请使用此选项,而不是上面的行:
当前选中=当前选中?当前选中:false;
当前已禁用=!上一个已选中;
*/
返回货币;
});
});
字段。更改()

复选框
复选框
复选框
复选框

复选框
最后出现正确答案(似乎是所选答案:):

$(“tr.fields”).change(函数(){
console.clear();
$('.fields').attr('disabled',false);
var checkedItems=$(“.fields:checked”);
如果(!checkedItems.length)
返回;
var checkedDices=checkedItems.map(函数(){
返回$(this.closest('tr').index();
});
var lastInRow=Array.prototype.reduce
.调用(选中的骰子、函数(p、c){
返回(c>p+1)?p:c;
});
$(“tr:gt(“+(lastInRow+1)+”)字段)
.attr(“禁用”,真实);
/*如果您想在上次检查之前禁用项目,可以添加此选项*/
//$(“tr:lt(“+(lastInRow)+”).fields”).attr(“禁用”,true);
});

这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试

最后,正确答案出现了(似乎是所选答案:):

$(“tr.fields”).change(函数(){
console.clear();
$('.fields').attr('disabled',false);
var checkedItems=$(“.fields:checked”);
如果(!checkedItems.length)
返回;
var checkedDices=checkedItems.map(函数(){
返回$(this.closest('tr').index();
});
var lastInRow=Array.prototype.reduce
.调用(选中的骰子、函数(p、c){
返回(c>p+1)?p:c;
});
$(“tr:gt(“+(lastInRow+1)+”)字段)
.attr(“禁用”,真实);
/*如果您想在上次检查之前禁用项目,可以添加此选项*/
//$(“tr:lt(“+(lastInRow)+”).fields”).attr(“禁用”,true);
});

这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试
这
是一个
测试

明确说明这是什么意思:“我做了10次”-我不确定你做了10次哪个部分。张贴完整的HTMLi希望这是更好的明确这意味着什么:“这我做了10次”-我不知道哪一部分你做了10次。发布完整的HTMLi希望这是更好的谢谢,我已经尝试过了,但是现在只允许第一个复选框检查所有其他地方disabled@joergi1988但它在片段中工作。它在您的本地?@joergi1988中不起作用。如果它禁用了代码上的所有复选框,您可以使用
var index=$(this).index()+2
。就像在洛卡尔一样,它不起作用。我也试过+2。我检查的任何内容都只允许第一个,第一个和第二个都是+2@joergi1988,现在有什么问题吗?谢谢,我已经尝试过了,但是现在只允许第一个复选框检查所有其他位置disabled@joergi1988但它在片段中工作。它在您的本地?@joergi1988中不起作用。如果它禁用了代码上的所有复选框,您可以使用
var index=$(this).index()+2
。就像在洛卡尔一样,它不起作用。我也试过+2。我检查的任何东西都只允许第一个,第一个和下一个都是+2@joergi1988现在有问题了吗?太好了!但是,我如何才能将此代码更改为->我喜欢选中任何复选框并仅使用此选项
<tr>
    <td>" . $start . "</td>\r\n
    <td>" . date("H:i:s", $finish_time) . "</td>\r\n
    <td>" . $this->cost_currency_tag . number_format($this->cost_per_slot, 2) . "</td>
    <td width='110'>
        <input data-val='".$start."-".date("H:i:s", $finish_time)."' class='fields' type='checkbox'>
    </td>
</tr>";
$('.fields input[type=checkbox]').click(function(){
    var obj = $(this).siblings('input[type=text]');
    obj.attr('disabled', !obj.attr('disabled'));
})