1

これが私のコードです:

$("#myCheckBox").click(function () {
        if (!$(this).is(':checked')) {
            $('#txtDateFrom').attr('readonly', true);
            $('#txtDateTo').attr('readonly', true);
            $('#txtDateFrom').val('01/01/2012');
            $('#txtDateTo').val('31/12/2012');
            $('#txtDateFrom').datepicker(this.checked ? "disable" : "disable");
            $('#txtDateTo').datepicker(this.checked ? "disable" : "disable");
        }
        else {
            $('#txtDateFrom').attr('readonly', false);
            $('#txtDateTo').attr('readonly', false);
            $('#txtDateFrom').datepicker(this.checked ? "disable" : "enable");
            $('#txtDateTo').datepicker(this.checked ? "disable" : "enable");
            $('#txtDateFrom').datepicker({ dateFormat: 'dd/mm/yy' });
            $('#txtDateTo').datepicker({ dateFormat: 'dd/mm/yy' });
        }
    });

チェックボックスのチェックを外し、もう一度チェックした後も、テキストボックスは無効のままです。なんで?

4

2 に答える 2

3

これはあなたの問題かもしれません:

$('#txtDateFrom').datepicker(this.checked ? "disable" : "disable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "disable");

次のようなものにする必要があります:

$('#txtDateFrom').datepicker(this.checked ? "disable" : "enable");
$('#txtDateTo').datepicker(this.checked ? "disable" : "enable");
于 2012-04-04T10:54:33.650 に答える
1

.removeAttr()を介して読み取り専用をfalseに設定する代わりに試してください.attr()。例えば:

$('#txtDateFrom').removeAttr('readonly');
于 2012-04-04T10:54:28.167 に答える