datepicker不显示IE11中的日历

时间:2019-05-09 06:31:18

标签: jquery asp.net datapicker

我目前在IE11中使用日期选择器遇到了一些麻烦。 当我单击文本框时,它至少可以正常工作,以至于在文本框的右端显示一个“ x”以删除其内容。但是日历本身未显示。

当我尝试使用textmode =“ DATE”代替jquery datapicker时,得到了相同的最终结果。 我使用的是母版/内容布局,并且jQuery导入位于母版页上。

export const StoreProvider = props => {
  const [state, dispatch] = useReducer(reducer, initialState);

  const thunkDispatch = action => {
    if (typeof action === "function") {
      return action(dispatch);
    }

    return dispatch(action);
  };

  return (
    <StoreContext.Provider value={{ state, actions, dispatch: thunkDispatch }}>
      {props.children}
    </StoreContext.Provider>
  );
};


const updateRate = dispatch => // get dispatch from parameters
  loadRates()
    .then(response => dispatch({ // add dispatch here
      type: types.UPDATE_RATE,
      value: response
    }))
    .catch(reject => dispatch({ // add dispatch here too
      type: types.ERROR_UPDATE_RATE,
      value: reject
    }))

在母版页中,我以这种方式包含了jquery:               

编辑:当我单击文本字段(第一个)时,效果如下图所示: enter image description here

更新:当我按照注释中的建议删除了ready函数的多余部分时,我犯了一些错误。纠正它们后,执行就绪时出现.js错误:<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server"> <br /><br /><br /> 带来了对象或方法不支持datepicker的错误。最终的问题是由于对jquery的自动创建脚本引用的干扰导致的,导致jquery的手动包含出现故障。

2 个答案:

答案 0 :(得分:1)

HTML:在from和to文本框中添加了属性CssClass:

 <div>
        Welche Tage sollen angezeigt werden:
    <asp:TextBox runat="server" ID="DisplayFromDateTextBox" CssClass="datepicker"></asp:TextBox>
        Bis
    <asp:TextBox runat="server" ID="DisplayToDateTextBox" CssClass="datepicker"></asp:TextBox>
        <asp:Button runat="server" ID="DisplayButton" OnClick="DisplayButton_Click" Text="Anzeigen" />
    </div>

将脚本代码更改为:

<script type="text/javascript">
    $(document).ready(function () {
        var currentDate = new Date();

        $("input.datepicker").datepicker({
            dateFormat: 'yy-mm-dd',
            maxDate: 0,
            changeYear: true
        });

        $("#<%= DisplayFromDateTextBox.ClientID %>").datepicker("setDate", currentDate).datepicker('show');
        $("#<%= DisplayToDateTextBox.ClientID %>").datepicker();
    });
</script>

谢谢

答案 1 :(得分:1)

您可以通过这种方式尝试

1。母版页

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication2.SiteMaster" %>

<!DOCTYPE html>

<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title><%: Page.Title %> - My ASP.NET Application</title>

    <asp:PlaceHolder runat="server">
        <%: Scripts.Render("~/bundles/modernizr") %>
    </asp:PlaceHolder>
    <webopt:BundleReference runat="server" Path="~/Content/css" />
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.css" rel="stylesheet" />
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
</head>
<body>
    <form runat="server">
        <div class="container body-content">
            <asp:ContentPlaceHolder ID="MainContent" runat="server">
            </asp:ContentPlaceHolder>
            <hr />
        </div>
    </form>
</body>
</html>

2。 Default.aspx

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>

<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
    <div>
        Welche Tage sollen angezeigt werden:
    <asp:TextBox runat="server" ID="DisplayFromDateTextBox"></asp:TextBox>
        Bis
    <asp:TextBox runat="server" ID="DisplayToDateTextBox"></asp:TextBox>
        <asp:Button runat="server" ID="DisplayButton" Text="Anzeigen" />
    </div>

    <script type="text/javascript">
        $(document).ready(function () {
            $("#<%= DisplayFromDateTextBox.ClientID %>").datepicker();
            $("#<%= DisplayToDateTextBox.ClientID   %>").datepicker();
        });
    </script>
</asp:Content>

我希望这会对@Thomas有帮助。