0

リンクされたボタンをクリックすると、jquery datepicker を上下にスライドさせる際に問題が発生します。ボタンをクリックすると、ボタンのテキストが変更され、ボタンのテキストに応じて、日付ピッカーが表示または非表示になります。リンクボタンの名前だけがすぐに変更され、すぐに元に戻ります。

もう 1 つの質問: document.ready で datepicker を非表示にしない場合、ページ上の他のトリガーがクリックされると表示されて消えます。なぜそれが起こるのですか?これが私が今持っているものです:

<script>
$(document).ready(function() {
    $($('#datepicker').datepicker({
        minDate: new Date('04/26/1985'),
        maxDate: "-1Y",
        dateFormat: "yy-mm-dd"
    })).hide();
});

function clicked() {
    if ($('#<%=link_btn.ClientID%>').text() == "Later dates") {
            $('#<%=link_btn.ClientID%>').text("Older dates");
            $('#datepicker').slideUp();
            return false;
        }
        if ($('#<%=link_btn.ClientID%>').text() == "Older dates") {
            $('#<%=link_btn.ClientID%>').text("Later dates");
            $('#datepicker').slideDown();
            return false;
        }
}

4

1 に答える 1

0

この方法で日付ピッカーを非表示にすると、常に日付ピッカーが非表示になります。私はこのようにします:

マークアップで:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
    <script>
        $(document).ready(function () {
            $($('#datepicker').datepicker({
                minDate: new Date('04/26/1985'),
                maxDate: "-1Y",
                dateFormat: "yy-mm-dd"
            }))
        });
        function ToggleDate(myvalue) {
            if (myvalue == "Later dates") {
                $('#datepicker').show().slideUp();
            }
            else {
                $('#datepicker').slideDown();
            }

        };

    </script>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <input id="datepicker" type="text" />
            <asp:LinkButton ID="link_btn" runat="server" OnClick="link_btn_Click">Later dates</asp:LinkButton>
        </div>
    </form>
</body>
</html>

そしてコードで:

protected void link_btn_Click(object sender, EventArgs e)
{
    string myScript = "ToggleDate('" + link_btn.Text + "');";
    Page.ClientScript.RegisterStartupScript(this.GetType(), "RegisterStartupScript", myScript, true);
    link_btn.Text = link_btn.Text == "Later dates" ? "Older dates" : "Later dates";
}

それが役に立てば幸い!

于 2013-10-11T22:21:53.757 に答える