Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.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_C#_Jquery_Asp.net_Checkbox - Fatal编程技术网

Javascript 回发时如何保留禁用的复选框?

Javascript 回发时如何保留禁用的复选框?,javascript,c#,jquery,asp.net,checkbox,Javascript,C#,Jquery,Asp.net,Checkbox,我有一组javascript代码,允许我根据自己的选择禁用/启用复选框 下面的第一组代码允许我将默认设置为“全选”,并在第一次页面加载期间(而不是回发时)选中“全选”时禁用其余代码。不在回发中执行此操作的原因是,例如,如果用户未选中checkboxlist2中的任何复选框,我希望提示用户选中checkboxlist 2中的至少一个复选框,但不希望在回发时用checkboxlist1和checkboxlist2中的默认“全选”覆盖用户选择 $(function () { if($("#hi

我有一组javascript代码,允许我根据自己的选择禁用/启用复选框

下面的第一组代码允许我将默认设置为“全选”,并在第一次页面加载期间(而不是回发时)选中“全选”时禁用其余代码。不在回发中执行此操作的原因是,例如,如果用户未选中checkboxlist2中的任何复选框,我希望提示用户选中checkboxlist 2中的至少一个复选框,但不希望在回发时用checkboxlist1和checkboxlist2中的默认“全选”覆盖用户选择

$(function () {
    if($("#hidden").val() == "")
    {
        $("#Checkboxlist1 :checkbox").attr('disabled', 'disabled');
        $("#Checkboxlist1 :checkbox[value='Select All']").removeAttr('disabled');
        $("#Checkboxlist1 :checkbox[value='Select All']").prop("checked", true);
        $("#Checkboxlist2 :checkbox").attr('disabled', 'disabled');
        $("#Checkboxlist2 :checkbox[value='Select All']").removeAttr('disabled');
        $("#Checkboxlist2 :checkbox[value='Select All']").prop("checked", true);
        $("#hidden").val("set");
    }
});

$(function () {
    $("#Checkboxlist2 :checkbox").change(function () {
            var ischecked = $(this).is(":checked");
            var val = $(this).val();
            //alert(val);
            if (val == "Select All") {
                if (ischecked) {
                    $("#Checkboxlist2 :checkbox").attr('disabled', 'disabled');
                    $(this).removeAttr('disabled');
                    $("#Checkboxlist2  :checkbox").prop("checked", false);
                    $(this).prop("checked", true);

                    return;
                } else {
                    $("#Checkboxlist2  :checkbox").removeAttr('disabled');
                    return;
我的问题是:

回发时,我的复选值将保留,但以前禁用的复选框已启用,那么如何在回发时保留其整个状态


我确实启用了我的复选框列表enableviewstate=true

我不确定您将
$(“#隐藏”)
此值设置为空。 但是,如果您的
复选框
更改事件旨在将所有
复选框
禁用
状态设置为正确,只需在该事件处理程序之后调用
更改
事件上的
触发器
方法即可。 像这样的

$("#Checkboxlist2 :checkbox").trigger('change');
像这样

$("#Checkboxlist2 :checkbox").change(function () {
var ischecked = $(this).is(":checked");
var val = $(this).val();
//alert(val);
  if (val == "Select All") {
    if (ischecked) {
        $("#Checkboxlist2 :checkbox").attr('disabled', 'disabled');
        $(this).removeAttr('disabled');
        $("#Checkboxlist2  :checkbox").prop("checked", false);
        $(this).prop("checked", true);

        return;
    } else {
        $("#Checkboxlist2  :checkbox").removeAttr('disabled');
        return;
    }
  }
});
$("#Checkboxlist2 :checkbox").trigger('change');
只要试着在document.ready函数中添加一个标志,它就可以工作了


您是否正在使用更新面板??不,我没有在事件处理程序之后使用更新面板,如中所示?