0

单击链接按钮时,我在 jquery datepicker 上下滑动时遇到问题。单击按钮时,按钮的文本会更改,并根据按钮的文本显示或隐藏日期选择器。什么都没有发生,只是链接按钮的名称被快速更改并立即更改回来。

另一个问题:如果在 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 回答