2013-10-11 94 views
0

我有一個問題滑動jQuery日期選擇器上點擊一個鏈接的按鈕。點擊該按鈕時,該按鈕的文本會發生變化,並根據日期選擇按鈕的文本顯示或隱藏。沒有任何事情發生,只有鏈接按鈕的名稱迅速更改並立即改回。datepicker不顯示在asp.net使用javascript,jquery

而另一個問題:如果在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; 
     } 
} 

回答

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

希望它能幫助!

+0

嗨,謝謝你的回答。日期選擇器不顯示。它看起來像ToggleDate(myvalue)沒有被調用,我在那裏包含了一個警告消息,它不顯示。 – gg17

+0

這很奇怪,因爲這個例子對我來說工作得很好。你有沒有在像螢火蟲這樣的工具中檢查標記?您的渲染頁面中是否包含jquery插件? – afzalulh

+0

感謝您的檢查。它們包含在我的母版頁中。在後面的代碼中,我將第2行Page.ClientScript更改爲ScriptManager,並且現在正在調用ToggleDate(myvalue)。我忘了提及我需要datepicker作爲div,所以點擊鏈接btn div顯示/隱藏。最初它必須被隱藏,直到鏈接btn被點擊。這是div:

。我也嘗試改變能見度。在點擊按鈕時,它只顯示/隱藏單詞'日期'而不是日曆。我該如何解決這個問題? – gg17