0

これについて助けが必要です。jquery で日付ピッカーを無効にできません。私はすでに調査を行いましたが、役に立ちませんでした。以下は、日付ピッカーを有効/無効にしないコードです。[更新しました]

    <script type="text/JavaScript">
    function pageLoad() {

        $(function () {
            $('#<%=TextBox_EventStartDate.ClientID %>').datepicker({
                showOn: 'button',
                buttonImage: '../Images/CalendarIcon1.gif',
                changeMonth: true,
                changeYear: true,
                buttonImageOnly: true,
                dateFormat: 'dd/mm/yy'
            });

        });

        $(function () {
            $('#<%=TextBox_EventEndDate.ClientID %>').datepicker({
                showOn: 'button',
                buttonImage: '../Images/CalendarIcon1.gif',
                changeMonth: true,
                changeYear: true,
                buttonImageOnly: true,
                dateFormat: 'dd/mm/yy'
            });
        });

        $("#<%=CheckBox_PayEvent.ClientID %>").click(function () {
            if ($("#<%=CheckBox_PayEvent.ClientID %>").is(":checked")) {
                $("#<%=TextBox_EventStartDate.ClientID %>").attr('readonly', true);
                $("#<%=TextBox_EventStartDate.ClientID %>").datepicker("disable");

                $("#<%=TextBox_EventEndDate.ClientID %>").attr('readonly', true);
                $("#<%=TextBox_EventEndDate.ClientID %>").datepicker("disable");
            }
            else {
                $("#<%= TextBox_EventStartDate.ClientID %>").attr('readonly', false);
                $("#<%= TextBox_EventStartDate.ClientID %>").datepicker("enable");

                $("#<%= TextBox_EventEndDate.ClientID %>").attr('readonly', false);
                $("#<%= TextBox_EventEndDate.ClientID %>").datepicker("enable");
            }
        });
    }

</script>

助けてくれてありがとう!

4

6 に答える 6

5

私のために働いた2つの方法:

$( "#datepicker" ).datepicker().datepicker('disable'); //disable [not disabled]
or .datepicker("disable");

他の方法は私にはうまくいきません:

.datepicker("disabled"); 
.dpSetDisabled(false);
.datepicker( "option", "disabled", true );

私はjQuery 1.9を使用しています

于 2012-10-14T23:52:02.623 に答える
2

この回答で少し遅れましたが、これが他の人に役立つ場合に備えて、私はこの同じ問題に出くわし、オンラインで投稿された一般的な解決策.datepicker("disable")も機能しませんでした

datePicker ソースを調べたところ、次のものが見つかりました。これはうまくいきました。おそらく正しい答えはバージョンに依存します。

コントロールを無効にするには

$("#<%= TextBox_EventStartDate.ClientID %>").dpSetDisabled(true); 

コントロールを有効にするには

$("#<%= TextBox_EventStartDate.ClientID %>").dpSetDisabled(false); 
于 2012-10-04T01:26:40.520 に答える
1

関数を無効化ロジック内に配置してみてください。たとえば、次のように添付されたテキストボックスが無効になっている場合、日付ピッカーを削除したい状況があります。

 $(document).ready(function () {
    //Turn off datepicker if the textbox has been disabled.
    if(document.getElementById('<%=txtStartDate.ClientID%>').disabled == true){
        $("#txtStartDate").datepicker('disable');
    }
    else { // Otherwise, enable and set up the .datepicker function 
        $("#txtStartDate").datepicker('enable');

        // .datepicker function goes here
        $('#<%=txtStartDate.ClientID%>').datepicker({
        showOn: "button", 
        buttonImage: "/Admin/Images/calendar.gif", 
        buttonImageOnly: true,
        }); 
    }      
});

投稿が古いことは承知していますが、お役に立てば幸いです。

于 2012-10-30T21:57:33.127 に答える
0

({disabled:true})を使用すると、間違いなく機能しません。datepicker( "disable")が機能します。

条件ステートメントが満たされ、クリックイベントが発生していることを確認してください。コードが実行されていますか?

スペースがサーバー側のコードによってエコーされている可能性があるため、JQueryに渡されるIDは次のようになります: "#ElementID"?

于 2012-08-03T04:28:04.783 に答える
0

私が理解している理由は、チェックボックスをオン/オフにすると、ページがポストバックされ、日付ピッカーがテキストボックスに再度設定されるためです。これを試して

    <script type="text/JavaScript">
    function pageLoad() {

        $(function () {
            $('#<%=TextBox_EventStartDate.ClientID %>').datepicker({
                showOn: 'button',
                buttonImage: '../Images/CalendarIcon1.gif',
                changeMonth: true,
                changeYear: true,
                buttonImageOnly: true,
                dateFormat: 'dd/mm/yy'
            });

        });

        $(function () {
            $('#<%=TextBox_EventEndDate.ClientID %>').datepicker({
                showOn: 'button',
                buttonImage: '../Images/CalendarIcon1.gif',
                changeMonth: true,
                changeYear: true,
                buttonImageOnly: true,
                dateFormat: 'dd/mm/yy'
            });
        });

        $("#<%=CheckBox_PayEvent.ClientID %>").click(function () {
            if ($("#<%=CheckBox_PayEvent.ClientID %>").is(":checked")) {
                $("#<%=TextBox_EventStartDate.ClientID %>").attr('readonly', true);
                $("#<%=TextBox_EventStartDate.ClientID %>").datepicker("disable");

                $("#<%=TextBox_EventEndDate.ClientID %>").attr('readonly', true);
                $("#<%=TextBox_EventEndDate.ClientID %>").datepicker("disable");
            }
            else {
                $("#<%= TextBox_EventStartDate.ClientID %>").attr('readonly', false);
                $("#<%= TextBox_EventStartDate.ClientID %>").datepicker("enable");

                $("#<%= TextBox_EventEndDate.ClientID %>").attr('readonly', false);
                $("#<%= TextBox_EventEndDate.ClientID %>").datepicker("enable");
            }
            return false; //This line will stop the postback to occur
        });
    }

</script>
于 2012-08-03T06:30:17.767 に答える
0

試す

$("#<%= TextBox_EventStartDate.ClientID %>").datepicker("disable");
于 2012-08-03T03:59:55.233 に答える