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

时间:2012-01-11 05:29:42

标签: php javascript

我正在开发一个项目并在管理端创建了一个网格,其中显示了所有项目,以便当管理员点击三个项目时,它们应该显示在该站点的索引页面上,并在选择三个项目后禁用其他复选框项目和何时更改它删除一个选中的复选框,然后选择其他人。我做的是从堆栈溢出得到一个java脚本代码。现在这个代码工作,但问题是当我刷新页面或从其他菜单导航可以选择更多的复选框,即使它在索引页面上显示前三个选定的项目。我可以让它在页面刷新后不选择。这是代码

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;
        }
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

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

$ _SESSION ['复选框'] ['opt1'] = 1表示如果选中该特定项目

我并不完全遵循你想做的事情,但似乎相对简单。如果您需要更多帮助,请告诉我。