2

一部の ajax カレンダー エクステンダーに問題があります。似たような 2 つのカレンダーと、それぞれが 1 つのカレンダーにリンクされている 2 つのテキスト ボックスがあります。

                        <asp:TextBox ID="txt1" runat="server"</asp:TextBox>
                    <cc1:CalendarExtender ID="calendar1" runat="server" TargetControlID="txt1"
                        Format="yyyy-MM-dd" CssClass="Calendars" Enabled="false">

最初のカレンダーで日付を選択すると、2 番目のカレンダーが最初のカレンダーと同じ月に配置されますが、実際の日付は選択されません (そうすると txt2 にその日付が表示されるため)。txt2 テキストボックスは、ユーザーが calendar2 で日付を選択するまで空のままにする必要があります。

私はインターネット上のあらゆる場所を見てきましたが、その状況に合うものはないようです。

誰でも助けることができますか?

編集:

日付を変更してからテキストボックスをjavascriptで消去しようとしましたが、そうするとトリガーされる比較バリデーターがあります。次の JavaScript コードを使用して、テキスト ボックスを消去します。

        function onShowingCal2(sender, e) {
        var txt2 = document.getElementById('<%= txt2.ClientID %>');
        var txt1 = document.getElementById('<%= txt1.ClientID %>');
        var cal2 = sender;
        if (txt2.value == "") {
            var dateStart = new Date();
            dateStart.setDate(txt1.value);
            cal2.set_selectedDate(dateStart );
            datechosen = false;                
        }
    }
function onTextboxChange() {
            if (!datechosen ) {
                document.getElementById('<%= txt2.ClientID %>').value = "";
            }
        }

ありがとう!

4

2 に答える 2

0

私はついに何かが働いた

私がしたことは、質問のjavascriptコードを取り、1つの非常に単純な関数を追加したことです:

        function EndDateChosen(e) {
        dateChosen = true;
    }

そして、calendar2 タグのプロパティ OnClientDateSelectionChanged='EndDateChosen' でこのように呼び出します。

そのイベントは仕事をするのが苦痛でした。JavaScript 関数にはパラメータが 1 つだけ必要であり、カレンダーのタグ内の関数名は、二重引用符ではなく単一引用符で囲む必要があります。

ありがとうございます!

于 2013-05-30T14:38:28.483 に答える