【问题标题】:datepicker doesn't show in asp.net using javascript, jquerydatepicker 不显示在 asp.net 中使用 javascript,jquery
【发布时间】:2013-10-11 21:08:36
【问题描述】:

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

还有另一个问题:如果在 document.ready 上我不隐藏日期选择器,它会在单击页面上的其他触发器时显示并消失。为什么会这样? 这是我现在拥有的:

<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;
        }
}

【问题讨论】:

    标签: jquery asp.net datepicker


    【解决方案1】:

    以这种方式隐藏日期选择器将始终隐藏日期选择器。我会这样做:

    在标记中:

    <!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";
    }
    

    希望对你有帮助!

    【讨论】:

    • 您好,感谢您的回答。日期选择器不显示。看起来 ToggleDate(myvalue) 没有被调用,我在其中包含了一个警报消息,它没有显示出来。
    • 这很奇怪,因为这个例子对我来说很好用。您是否检查过任何工具(如 firebug)中的标记?渲染页面中是否包含 jquery 插件?
    • 感谢您的检查。它们包含在我的母版页中。在后面的代码中,我将第二行 Page.ClientScript 更改为 ScriptManager 并且现在正在调用 ToggleDate(myvalue)。我忘了提到我需要 datepicker 作为 div,所以单击链接 btn 时 div 会显示/隐藏。最初必须隐藏它,直到单击链接 btn。这是 div:。我也尝试过改变可见性。单击按钮时,它仅显示/隐藏“日期”一词,而不是日历。我该如何解决?
    • 我也用 div 进行了测试。我可以在右侧看到日历并按预期工作。但是,我没有您使用的母版页。
    • 我想我修好了。我现在在切换日期函数中创建日期选择器,而不是在 document.ready 中。 Document.ready 只执行一次,当触发其他一些控件时,页面不会再次加载,这就是我丢失日期选择器的原因。感谢您的帮助!
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多