每次使用 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/