选中最多三个复选框并禁用其他复选框


Maximum three checkbox selected and other disable

我正在处理一个项目,并在管理端创建了一个网格,其中显示了所有项目,这样当管理员单击三个项目时,它们应该显示在该网站的索引页上,并在选择三个项目后禁用其他复选框,以及何时更改它,删除其中一个选中的复选框,然后将选择权交给其他复选框堆栈溢出。现在这个代码可以工作了,但问题是当我刷新页面或从其他菜单导航时,即使它在索引页面上显示了前三个选定的项目,也可以选择更多的复选框。我如何才能在页面刷新后不选择。这是代码

function disableHandler (form, inputName) {
    var inputs = form.elements[inputName];
    for (var i = 2; i < inputs.length; i++) {
        var input = inputs[i];
        input.onclick = function (evt) {
            if (this.checked) {
                disableInputs(this, inputs);
            }
            else {
                enableInputs(this, inputs);
            }
            return true;
        };
    }
}
function disableInputs (input, inputs) {
    for (var i = 2; i < inputs.length; i++) {
        var currentInput = inputs[i];
        if (currentInput != input) {
            currentInput.disabled = true;
        }
    }
}
function enableInputs (input, inputs) {
    for (var i = 2; i < inputs.length; i++) {
        var currentInput = inputs[i];
        if (currentInput != input) {
            currentInput.disabled = false;
        }
    }
}

您应该在数据库中保留选择。这是一个待办事项列表:

  1. 每次选择/取消选择后,向服务器发送一个后台ajax请求,其中包含所选复选框的详细信息。

  2. 在服务器上将此信息保存到数据库中。

  3. 当用户刷新页面时,使用数据库中的信息将选中的复选框呈现为选中状态,将其他复选框显示为禁用状态。

您可以发送ajax请求来设置会话变量,以跟踪用户所选择的内容。

类似于$_SESSION['checkbox']['pt1']=1的内容,表示是否选中了特定项目

不过,我不太明白你想做什么,但这似乎相对简单。如果你需要更多帮助,请告诉我。