jquery - 仅在 Internet Explorer 中引发未定义或 null 引用的 datepicker 元素

标签 jquery asp.net-mvc internet-explorer datepicker undefined-reference

每次使用 Internet Explorer(不同版本)运行表单时,我都会收到如下所示的错误,其中包含表单中的几个日期选择器元素:

Unhandled exception at line 393, column 4 in http://localhost/Scripts/bootstrap-datepicker.js

0x800a138f - JavaScript runtime error: Unable to get property 'split' of undefined or null reference

这是包含元素定义的代码,值得一提的是,只有在使用任何 Internet Explorer 版本时按下“提交”按钮时才会引发错误(在 Firefox 中工作正常):

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
    ViewBag.Dashboard = "";
    ViewBag.Item = "";
    ViewBag.Events = "active";
    ViewBag.Location = "";
}

<div class="container">
       @using (Ajax.BeginForm("EventDetails", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "eventDetails", InsertionMode = InsertionMode.Replace }))
    {
        <div class="row">
            <div class="col-lg-6">
                <div class="input-group">
                    <input name="equipmentCode" class="form-control" type="text" value="Scan Equipment" onfocus="if(this.value=='Scan Equipment') {this.value = '';}" onblur="if(this.value==''){this.value='Scan Equipment';}" />
                    <span class="input-group-btn">
                        <button type="submit" class="btn" onclick="$(this.form).submit();">Submit</button>
                    </span>
                </div>
                <p></p>
            </div>
        </div>
        <div class="form-inline">
            <div class="row">
                <label class="col-lg-3 col-lg-offset-1 text-center" style="padding-top: 7px">Completed Date between:</label>
                <div class="col-lg-2"><input name="dtStart" class="form-control datepicker" /></div>
                <label class="text-center col-lg-1" style="padding-top: 7px">and:</label>
                <div class="col-lg-2"><input name="dtEnd" class="form-control datepicker" /></div>
            </div>
    </div>
    }





    <div class="row">
        @*<div id="itemDetails" class="col-sm-12"> Commented by Rod*@
        <div id="EventDetails" class="col-sm-12">
            @RenderBody()
            @*            @Html.Partial("PartialViews/_Item", Model)*@
        </div>
    </div>

</div>

这是 _Events.cshtml 中初始化 datepicker() 的代码:

<script type="text/javascript">
    $(function () { $('.datepicker').datepicker();});
</script>

我很感激这里的任何帮助,因为我很想完全删除这个 DatePicker 组件..

最佳答案

我找到了解决此问题的方法,以防有一天你们中的任何人遇到它。

问题在于 dtStart 和 dtEnd 元素通过类名调用 datepicker(),如下所示:

<script type="text/javascript">
    $(function () { $('.datepicker').datepicker();});
</script>

我所做的是将 ID 添加到 dtStart 和 dtEnd 元素,并通过 ID 而不是类以下面的方式调用它们:

<script type="text/javascript">
    $(function () { $('#dtStart').datepicker(); $('#dtEnd').datepicker(); });
</script>

理论上它应该以两种方式工作,但这样问题就消失了,现在它适用于所有浏览器..

关于jquery - 仅在 Internet Explorer 中引发未定义或 null 引用的 datepicker 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19938392/

相关文章:

asp.net-mvc - 如何在 ASP.NET MVC 中创建仅在没有进一步路径时才匹配的 MapRoute 条目?

javascript - 如何在 IE 中避免模块导入

javascript - 获取点击打开 Bootstrap Modal 对话框的元素

javascript - 隐藏表格行

jquery - 使用 jQuery - JSONP 从 Vagrant VM 上托管的第三方 Node.js 服务器获取数据

c# - ASP.NET 5 beta 8 中的 Windows 身份验证支持

javascript - 如何使用 ASP.NET MVC 在 iframe 中显示文档?

jquery - 向表中添加一列(使用 jQuery)会使表变大,为什么?

internet-explorer - 什么是 IE9 开发者工具中的 IE9 兼容性 View ?

javascript - IE7 和 8 中的 CSS3 和 HTML5