Javascript 回发时如何保留禁用的复选框?
我有一组javascript代码,允许我根据自己的选择禁用/启用复选框 下面的第一组代码允许我将默认设置为“全选”,并在第一次页面加载期间(而不是回发时)选中“全选”时禁用其余代码。不在回发中执行此操作的原因是,例如,如果用户未选中checkboxlist2中的任何复选框,我希望提示用户选中checkboxlist 2中的至少一个复选框,但不希望在回发时用checkboxlist1和checkboxlist2中的默认“全选”覆盖用户选择Javascript 回发时如何保留禁用的复选框?,javascript,c#,jquery,asp.net,checkbox,Javascript,C#,Jquery,Asp.net,Checkbox,我有一组javascript代码,允许我根据自己的选择禁用/启用复选框 下面的第一组代码允许我将默认设置为“全选”,并在第一次页面加载期间(而不是回发时)选中“全选”时禁用其余代码。不在回发中执行此操作的原因是,例如,如果用户未选中checkboxlist2中的任何复选框,我希望提示用户选中checkboxlist 2中的至少一个复选框,但不希望在回发时用checkboxlist1和checkboxlist2中的默认“全选”覆盖用户选择 $(function () { if($("#hi
$(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函数中添加一个标志,它就可以工作了
您是否正在使用更新面板??不,我没有在事件处理程序之后使用更新面板,如中所示?