我有一个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保存页面上每个元素的状态并恢复它们的帖子,但我没有成功,因为我无法检测到这是第一次页面加载与否(拳头时间没有以前的状态)。我想知道这是我的谅解是对的,如何保存这种状态并且这是正确的方法呢? 感谢