根据用户操作和其他值

时间:2017-08-23 07:02:26

标签: javascript jquery asp.net web webforms

我有一个Web表单页面,其元素和验证程序需要相对于用户的选择启用和禁用,并且每个其他人动态值。我使用JQuery完成了这个,例如:

$("#DrpRequestKind").on("change", function () {
            RequestKind = $(this).val();    
switch (RequestKind) {
                case "0":
                    $('.inside').find('input, select, textarea').not("#DrpRequestKind, #FileUpload, #_btnAttachFiles").prop("disabled", true).val(null);
                    $("#DrpLeaveDuration, #_DDLlocatePersonelNo, #DrpLeaveKind").addClass("ddl-disabled").val(0);
                    $("#TxtDateOF, #TxtDateTO").css("background-color", "rgb(238, 238, 238)");

                    //Enable\Disable Required validation
                    $("#VDrpLeaveKind")[0].enabled = true;
                    $("#VTxtDateTO")[0].enabled = true;
                    $("#VDrpLeaveDuration")[0].enabled = true;
                    $("#VTxtEndTime")[0].enabled = true;
                    $("#VTxtStartTime")[0].enabled = true;
                    ValidatorEnable($("#VtxtVacationDesc")[0], false);

                    break;

                case "1":

                    $('.inside').find('input, select, textarea').not("#DrpRequestKind, #FileUpload, #btnAttachFiles").prop("disabled", true);
                    $("#DrpLeaveDuration, #DrpLeaveKind").prop("disabled", true).addClass("ddl-disabled").val(0);
                    $("#TxtDateOF").css("background-color", "white").removeAttr("disabled").val(null);
                    $("#TxtDateTO").css("background-color", "white").prop("disabled", false).val(null);
                    $("#TxtStartTime, #TxtEndTime").prop("disabled", false).val(null);
                    $("#TxtlocatePersonelNo").prop("disabled", false).val(null);
                    $("#DDLlocatePersonelNo").prop("disabled", false).removeClass("ddl-disabled").css("background-color", "").val(0);
                    $("#txtVacationDesc").prop("disabled", false).val(null);

                    //Disable\Enable required validation
                    ValidatorEnable($("#VDrpLeaveKind")[0], false);
                    ValidatorEnable($("#VDrpLeaveDuration")[0], false);
                    $("#VTxtStartTime")[0].enabled = true;
                    $("#VtxtVacationDesc")[0].enabled = true;
                    break;
                case "2":

                    $('.inside').find('input, select, textarea').not("#DrpRequestKind, #FileUpload, #btnAttachFiles").prop("disabled", true).val(null);
                    $("#DrpLeaveDuration").prop("disabled", false).removeClass("ddl-disabled").val(0);
                    $("#TxtDateOF, #TxtDateTO, #DDLlocatePersonelNo").css("background-color", "rgb(238, 238, 238)");
                    $("#DDLlocatePersonelNo, #DrpLeaveKind").val(0);

                    //Enable\Disable Required validation                        
                    $("#VDrpLeaveKind")[0].enabled = true;
                    $("#VDrpLeaveDuration")[0].enabled = true;
                    $("#VTxtEndTime")[0].enabled = true;
                    $("#VTxtStartTime")[0].enabled = true;
                    ValidatorEnable($("#VtxtVacationDesc")[0], false);

                    break;
                default:
            }
});

上面的脚本是影响其他人的影响下拉列表更改的简单示例。现在,当发回帖子时,提交所有外观如background-color并禁用或启用重置为默认值。我尝试使用sessionStorage保存页面上每个元素的状态并恢复它们的帖子,但我没有成功,因为我无法检测到这是第一次页面加载与否(拳头时间没有以前的状态)。我想知道这是我的谅解是对的,如何保存这种状态并且这是正确的方法呢? 感谢

0 个答案:

没有答案